df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
产生
a b
0 1 4
1 2 5
2 3 6
给出字典
d = {'a': 2, 'b': 5}
我将如何提取dict的键值与所有列值匹配的数据帧的行-因此在这种情况下
a b
1 2 5
答案 0 :(得分:2)
您可以与Series
进行比较并进行过滤:
df[(df == pd.Series(d)).all(1)]
a b
1 2 5
此比较在索引/列上对齐并针对每一行进行广播。
答案 1 :(得分:1)
比较值并使用索引,
df[ (df.values == np.array(list(d.values()))).all(1) ]
a b
1 2 5