我有一个大的数据集(大约1M行) 在此数据集中,我想在一列(或多列)中找到一些值
例如
df包含
col1 col2 col3
-------------------
a b c
d e f
g h i
j k l
m n o
我要寻找的是搜索每一行,如果给定值存在,则在新col4中输出“ YES”
有什么帮助吗?
谢谢
答案 0 :(得分: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
如果我们使用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