对pandas里的loc并列条件索引的实例讲解

  • Post category:Python

当我们使用pandas库进行数据处理时,经常需要根据特定的条件进行数据筛选,而loc函数是其中一种常用的方法。在实际使用中,有时候需要使用并列条件来进行索引,下面将进行详细的讲解。

1. loc函数的基本用法

首先,我们来简单介绍一下loc函数的基本用法。loc函数在pandas中用于通过标签逐行访问数据。loc可以使用逻辑运算符,可以根据一行或多行的值来筛选数据。其基本语法如下:

df.loc[行标签条件,列标签条件]

其中,行标签条件用于筛选行,列标签条件用于筛选列。

例如,下面的代码演示了如何使用loc函数进行行和列的筛选:

import pandas as pd

data = {'A': [1, 2, 3, 4],
        'B': [5, 6, 7, 8],
        'C': [9, 10, 11, 12]}
df = pd.DataFrame(data)

# 选取第1行和第3行,B列和C列的数据
df.loc[[1, 3], ['B', 'C']]

输出结果为:

   B   C
1  6  10
3  8  12

2. loc函数并列条件索引的实例

在实际使用中,有时候需要使用并列条件来进行索引。下面我们将使用两个简单的示例演示如何使用loc函数进行并列条件索引。

示例1:根据列的标签值筛选行

在这个示例中,我们有一个数据框,其中包含了颜色、尺寸和价格三列数据。现在,我们需要筛选出颜色为“红色”且价格大于80的所有数据。下面的代码给出了如何实现:

import pandas as pd

data = {'颜色': ['红色', '蓝色', '黄色', '红色', '绿色'],
        '尺寸': ['S', 'M', 'L', 'M', 'S'],
        '价格': [90, 100, 80, 120, 70]}
df = pd.DataFrame(data)

# 筛选颜色为“红色”且价格大于80的数据
df.loc[(df['颜色'] == '红色') & (df['价格'] > 80)]

输出结果为:

   颜色 尺寸   价格
0  红色  S   90
3  红色  M  120

在上面的例子中,我们首先使用df['颜色'] == '红色'来筛选颜色为“红色”的数据,然后使用df['价格'] > 80来筛选价格大于80的数据。最后,使用&运算符将两个筛选条件合并起来,用于在数据框中进行筛选。

示例2:根据行的标签值筛选列

在这个示例中,我们有一个数据框,其中包含了颜色、尺寸和价格三列数据。现在,我们需要筛选出尺寸为“S”或“M”的数据,并仅保留颜色和价格两列数据。下面的代码给出了如何实现:

import pandas as pd

data = {'颜色': ['红色', '蓝色', '黄色', '红色', '绿色'],
        '尺寸': ['S', 'M', 'L', 'M', 'S'],
        '价格': [90, 100, 80, 120, 70]}
df = pd.DataFrame(data)

# 筛选尺寸为“S”或“M”的数据,并保留颜色和价格两列数据
df.loc[df['尺寸'].isin(['S', 'M']), ['颜色', '价格']]

输出结果为:

   颜色   价格
0  红色   90
1  蓝色  100
3  红色  120
4  绿色   70

在上面的例子中,我们使用df['尺寸'].isin(['S', 'M'])来筛选出尺寸为“S”或“M”的数据,然后使用['颜色', '价格']来指定保留的两列数据。最后,使用loc函数将筛选条件和列标签条件进行组合。