如何检查数据框中是否存在值

pyd*_*pyd 3 python data-analysis dataframe pandas

嗨,我想获取包含特定单词的数据框的列名,

例如:我有一个数据帧,

NA              good    employee
Not available   best    employer
not required    well    manager
not eligible    super   reportee

my_word=["well"]
Run Code Online (Sandbox Code Playgroud)

如何检查df中是否存在"井",以及"井"中的列名称是否存在

提前致谢!

jez*_*ael 5

使用DataFrame.isin用于检查所有的列和DataFrame.any用于检查至少一个True每行:

m = df.isin(my_word).any()
print (m)
0    False
1     True
2    False
dtype: bool
Run Code Online (Sandbox Code Playgroud)

然后通过过滤获取列名称:

cols = m.index[m].tolist()
print(cols)
[1]
Run Code Online (Sandbox Code Playgroud)

数据:

print (df)
               0      1         2
0            NaN   good  employee
1  Not available   best  employer
2   not required   well   manager
3   not eligible  super  reportee
Run Code Online (Sandbox Code Playgroud)

详情:

print (df.isin(my_word))
       0      1      2
0  False  False  False
1  False  False  False
2  False   True  False
3  False  False  False

print (df.isin(my_word).any())
0    False
1     True
2    False
dtype: bool
Run Code Online (Sandbox Code Playgroud)

编辑转换后嵌套lists,所以需要展:

my_word=["well","manager"]

m = df.isin(my_word).any()
print (m)
0    False
1     True
2     True
dtype: bool

nested = df.loc[:,m].values.tolist()
flat_list = [item for sublist in nested for item in sublist]
print (flat_list)
['good', 'employee', 'best', 'employer', 'well', 'manager', 'super', 'reportee']
Run Code Online (Sandbox Code Playgroud)


Sac*_*hin 5

要检查特定列,您可以简单地检查如下:

'test' in df.cloumn.values #which returns True or False
Run Code Online (Sandbox Code Playgroud)

要检查完整的 df :

df.isin(["test"]).any().any() #which will return True or False
Run Code Online (Sandbox Code Playgroud)