返回包含字符串pandas的值的所有列

时间:2018-04-27 19:25:08

标签: python-2.7 pandas

我有一个类似下面的数据框。我想在数据框中找到包含字符串'abc'的所有列,并返回这些字段的列表,如下例所示。如果我正在寻找我会使用isin的行,但我不确定如何获取列。任何提示都非常感谢。

示例:

Print df

Field1  Field2  Field3
f_abc   23      dog
Df3     bb      ju


Return 

Field1

2 个答案:

答案 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()])

(还没有将此作为评论添加的声誉)