Python 使用字典筛选数据帧
有没有一种方法可以结合使用列名和值字典来过滤数据帧 数据帧示例:Python 使用字典筛选数据帧,python,pandas,Python,Pandas,有没有一种方法可以结合使用列名和值字典来过滤数据帧 数据帧示例: df = pd.DataFrame({ "name": ["Ann", "Jana", "Yi", "Robin", "Amal", "Nori"], "city": ["Chicago", "Prague", &qu
df = pd.DataFrame({
"name": ["Ann", "Jana", "Yi", "Robin", "Amal", "Nori"],
"city": ["Chicago", "Prague", "Shanghai", "Manchester", "Chicago", "Osaka"],
"age": [28, 33, 34, 38, 31, 37],
"score": [79.0, 81.0, 80.0, 68.0, 61.0, 84.0],
})
column_dict = {0:"city", 1:"score"}
value_dict = {0:"Chicago", 1:61}
目标是使用匹配键列和值字典来过滤数据帧。
在本例中,城市将被过滤到芝加哥,分数将被过滤到61,过滤后的数据框为:
name city age score
4 Amal Chicago 31 61.0
使用两个不同的dict来存储键和值有点滑稽。你最好做这样的事情:
filter_dict = {"city":"Chicago", "score":61}
df_filt = df
for k,v in filter_dict.items():
df_filt = df_filt[df_filt[k] == v]
输出:
name city age score
4 Amal Chicago 31 61.0
使用:
输出
df[df[column_dict.values]==value_dict.values.allaxis=1]
name city age score
4 Amal Chicago 31 61.0
# create filter DataFrame from column_dict and value_dict
df_filter = pd.DataFrame({value: [value_dict[key]] for key, value in column_dict.items()})
# use merge with df_filter
res = df.merge(df_filter, on=['city', 'score'])
print(res)
name city age score
0 Amal Chicago 31 61.0