使用 dict 在数据框中查找行

Hat*_*sut 5 pandas

df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]}) 
Run Code Online (Sandbox Code Playgroud)

产生

   a  b
0  1  4
1  2  5
2  3  6
Run Code Online (Sandbox Code Playgroud)

给定一个 dict

d = {'a': 2, 'b': 5}
Run Code Online (Sandbox Code Playgroud)

我将如何提取数据框的行,其中 dict 的键值与所有列值匹配 - 所以在这种情况下

   a  b
1  2  5
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 4

您可以比较Series和过滤:

df[(df == pd.Series(d)).all(1)]

   a  b
1  2  5
Run Code Online (Sandbox Code Playgroud)

此比较在索引/列上对齐并针对每行进行广播。