如何为python中包含特定字符串的所有列选择子集?

时间:2019-07-01 15:28:52

标签: python pandas numpy dataframe subset

我有一个这样的数据框,

col1  col2  col3  col4  col5  col6
abc    bc   eg     egg   123    NA
frog   dog  fox    cat   ac     aa
12     7    87     ch    25      1
bc     79   09     123   NA     89    
...
...

我想选择所有包含特定字符串的列,以获取数据框的子集。

例如,我希望所有行都包含'bc' 我知道如何从一列中选择它,

df.loc[df.col1.str.contains('bc', na=False)]

但是如何一次从所有列中获取数据?因为我的原始专栏超过200篇。

我尝试使用

for c, dtype in zip(df.columns, df.dtypes):
...     if dtype == np.object:
...             df = df.loc[df[c].str.contains("bc",na = False)]

但是它只返回所有列名。

最终结果应该是

col1  col2  col3  col4  col5  col 6
abc    bc   efg    egg   123    NA
bc     79   09     123   NA     89    
...
...

我想要的只是原始数据框所有包含“ bc”的行的子集。

0 个答案:

没有答案