使用dict在数据框中查找行

时间:2019-01-28 22:04:53

标签: pandas

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

2 个答案:

答案 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