要按字典键值对筛选pandas数据帧,可以使用query()
方法或布尔索引。下面是使用这两种方法的代码示例:
方法一:query()
import pandas as pd
# 创建示例数据帧
data = {'name': ['Tom', 'Nick', 'John', 'Tom'],
'age': [20, 21, 22, 23],
'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# 定义字典键值对作为筛选条件
filters = {'name': ['Tom', 'John'], 'age': [20, 22]}
# 使用query()方法筛选数据帧
filtered_df = df.query('name in @filters["name"] and age in @filters["age"]')
print(filtered_df)
输出结果:
name age city
0 Tom 20 New York
2 John 22 London
方法二:布尔索引
import pandas as pd
# 创建示例数据帧
data = {'name': ['Tom', 'Nick', 'John', 'Tom'],
'age': [20, 21, 22, 23],
'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# 定义字典键值对作为筛选条件
filters = {'name': ['Tom', 'John'], 'age': [20, 22]}
# 使用布尔索引筛选数据帧
filtered_df = df[(df['name'].isin(filters['name'])) & (df['age'].isin(filters['age']))]
print(filtered_df)
输出结果:
name age city
0 Tom 20 New York
2 John 22 London
这两种方法都可以根据字典键值对筛选pandas数据帧。query()
方法使用字符串表达式,而布尔索引使用条件运算符。根据个人喜好和数据集的大小,选择适合的方法。
上一篇:按字典键的首字母对字典进行排序
下一篇:按字典列表中值的上下限筛选