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

在dataframe中搜索值并导出到新列

  •  0
  • ikel  · 技术社区  · 5 年前

    我有一个大数据集(大约1百万行) 在这个数据集中,我想在一列(或多列)中找到一些值

    例如,

    数据框包含

       col1 col2 col3
    -------------------
          a   b    c
          d   e    f
          g   h    i
          j   k    l
          m   n    o
    

    我要寻找的是搜索每一行,如果给定值存在,那么在新的子列表中输出一个“是”。

    有什么帮助吗?

    谢谢

    1 回复  |  直到 5 年前
        1
  •  1
  •   Erfan    5 年前

    场景1:搜索整个数据帧

    我们可以利用 DataFrame.eq 具有 any 在列轴上,所以对于每一行。这意味着,如果 a 在任何一列中有一行,我们得到 True 以下内容:

    df['indicator'] = df.eq('a').any(axis=1)
    
      col1 col2 col3  indicator
    0    a    b    c       True
    1    d    e    f      False
    2    g    h    i      False
    3    j    k    l      False
    4    m    n    o      False
    

    场景2:对于某些列:

    如果我们使用 iloc ,以选择前两列

    df['indicator'] = df.iloc[:, :2].eq('d').any(axis=1)
    
      col1 col2 col3  indicator
    0    a    b    c      False
    1    d    e    f       True
    2    g    h    i      False
    3    j    k    l      False
    4    m    n    o      False