代码之家  ›  专栏  ›  技术社区  ›  Hatshepsut

使用dict在数据框中查找行

  •  3
  • Hatshepsut  · 技术社区  · 6 年前
    df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]}) 
    

    生产

       a  b
    0  1  4
    1  2  5
    2  3  6
    

    给出一个DICT

    d = {'a': 2, 'b': 5}
    

    我如何提取数据帧中dict的键值与所有列值匹配的行——所以在本例中

       a  b
    1  2  5
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   cs95 abhishek58g    6 年前

    你可以和 Series 过滤器:

    df[(df == pd.Series(d)).all(1)]
    
       a  b
    1  2  5
    

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

        2
  •  1
  •   Vaishali    6 年前

    比较值并使用索引,

    df[ (df.values == np.array(list(d.values()))).all(1) ]
    
        a   b
    1   2   5