繁体   English   中英

如何根据条件选择列?

[英]How to select columns based on a condition?

我有pandas DataFrame,我想知道如何选择包含给定列表targets任何子字符串的列:

targets = ["c1", "c2"]

df = 
c1_targ   c2xxx  c3abc
...       ...    ...

预期结果:

df = 
    c1_targ   c2xxx
    ...       ...

这是我试过的:

cols = [[True if col in df.columns else False] for col in targets]

您可以通过|连接字符串的每个值 对于正则表达式OR - 'c1|c2'c1c2然后按DataFrame.filter过滤:

targets = ["c1", "c2"]

df1 = df.filter(regex='|'.join(targets))

或者通过创建面膜str.contains通过和过滤DataFrame.loc:用于度日面具所有的行和列:

df1 = df.loc[:, df.columns.str.contains('|'.join(targets))]

print (df1)
  c1_targ c2xxx
0     ...   ...

你可以用这个:

new_col = [x for x in df.columns if any(y in x for y in targets)]
df = df[df.columns.intersection(new_col)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM