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中是否存在"井",以及"井"中的列名称是否存在
提前致谢!
使用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)
要检查特定列,您可以简单地检查如下:
'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)
| 归档时间: |
|
| 查看次数: |
11060 次 |
| 最近记录: |