[英]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'
是c1
或c2
然后按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.