我有一个类似下面的数据框。我想在数据框中找到包含字符串'abc'的所有列,并返回这些字段的列表,如下例所示。如果我正在寻找我会使用isin的行,但我不确定如何获取列。任何提示都非常感谢。
示例:
Print df
Field1 Field2 Field3
f_abc 23 dog
Df3 bb ju
Return
Field1
答案 0 :(得分:3)
您可以使用df.columns
上的列表理解来完成此操作。
首先让我们创建一个示例数据帧:
df = pd.DataFrame(columns=["A", "B", "C"], data=[['abc']*3]*3)
df['D'] = 'ab'
结果:
A B C D
0 abc abc abc ab
1 abc abc abc ab
2 abc abc abc ab
现在让我们只打印包含'abc'的列:
print([col for col in df.columns if df[col].str.contains("abc").any()])
['A','B','C']
答案 1 :(得分:0)
你也可以使用pandas pd.Series.isin
返回一个布尔系列。
mydf = pd.DataFrame(data={'Field1':['f_abc', 21], 'Field2':[23, 'bb'], 'Field3':['dog', 'ju']}, columns=['Field1', 'Field2', 'Field3'])
print([i for i in mydf if mydf[i].isin(['f_abc']).any()])
(还没有将此作为评论添加的声誉)