在数据框中搜索值并导出到新列

时间:2019-11-03 18:04:16

标签: pandas dataframe

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

例如

df包含

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

我要寻找的是搜索每一行,如果给定值存在,则在新col4中输出“ YES”

有什么帮助吗?

谢谢

1 个答案:

答案 0 :(得分:1)

方案1:搜索整个数据框

我们可以在列轴上将DataFrame.eqany一起使用,因此对于每一行。这意味着,如果值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