当我们使用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
函数将筛选条件和列标签条件进行组合。