当我们处理Pandas数据框架时,有时需要根据多个条件对数据进行过滤。以下是对于如何用多个条件过滤Pandas数据框架的完整攻略:
使用 &
和 |
符号
Pandas数据框架中,可以使用 &
和 |
符号来对多个条件进行逻辑运算。其中,&
符号表示“与”,|
符号表示“或”。
假设我们有一个名为df
的数据框架,其中包含“姓名”、“年龄”、“性别”、“城市”等几列数据。要筛选出年龄为25岁且来自北京市的女性,可以这样写:
df[(df['年龄'] == 25) & (df['城市'] == '北京') & (df['性别'] == '女')]
如果需要筛选所有来自北京和上海的数据,则可以这样写:
df[(df['城市'] == '北京') | (df['城市'] == '上海')]
使用 query()
方法
除了使用符号进行逻辑运算外,Pandas数据框架还提供了一个 query()
方法,可以更方便地对多个条件进行筛选。使用方法如下:
df.query('性别 == "女" and 城市 == "北京" and 年龄 == 25')
上述语句与第一个示例中使用符号的语句效果相同。而如果要筛选所有来自北京和上海的数据,则可以这样写:
df.query('城市 == "北京" or 城市 == "上海"')
在使用 query()
方法时,注意要用双引号包裹查询条件中的字符串,并按照Python语法编写查询条件。
示例
以下是一个示例:
import pandas as pd
data = {'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
'年龄': [23, 25, 22, 24, 27],
'性别': ['男', '女', '男', '女', '女'],
'城市': ['北京', '上海', '北京', '上海', '北京']}
df = pd.DataFrame(data)
# 筛选出北京市25岁的女性
result1 = df[(df['年龄'] == 25) & (df['城市'] == '北京') & (df['性别'] == '女')]
# 筛选出所有居住在北京或上海的人员信息
result2 = df.query('城市 == "北京" or 城市 == "上海"')
print(result1)
print(result2)
输出结果为:
姓名 年龄 性别 城市
1 李四 25 女 上海
4 钱七 27 女 北京
姓名 年龄 性别 城市
0 张三 23 男 北京
1 李四 25 女 上海
2 王五 22 男 北京
3 赵六 24 女 上海
4 钱七 27 女 北京
以上就是使用多个条件过滤Pandas数据框架的完整攻略。希望可以帮助到你。