Python 2.7 返回包含字符串的值的所有列
我有一个像下面这样的数据帧。我希望找到数据框中包含字符串“abc”的所有列,并返回这些字段的列表,如下面的示例所示。如果我要查找行,我会使用isin,但我不确定如何获取列。任何提示都非常感谢 例如:Python 2.7 返回包含字符串的值的所有列,python-2.7,pandas,Python 2.7,Pandas,我有一个像下面这样的数据帧。我希望找到数据框中包含字符串“abc”的所有列,并返回这些字段的列表,如下面的示例所示。如果我要查找行,我会使用isin,但我不确定如何获取列。任何提示都非常感谢 例如: Print df Field1 Field2 Field3 f_abc 23 dog Df3 bb ju Return Field1 您可以通过对df.columns的列表理解来实现这一点 首先,让我们创建一个示例数据帧: df = pd.DataFr
Print df
Field1 Field2 Field3
f_abc 23 dog
Df3 bb ju
Return
Field1
您可以通过对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']您可以通过对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']您还可以使用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()])
还没有名声将此添加为评论您还可以使用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()])
还没有名声将此添加为注释类似于字典,您可以在df中进行col for col,但回答很好。类似于字典,您可以在df中进行col for col,但回答很好。