首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:如果与多个子字符串匹配,如何按名称选择dataframe列

python:如果与多个子字符串匹配,如何按名称选择dataframe列
EN

Stack Overflow用户
提问于 2017-04-20 15:23:21
回答 1查看 608关注 0票数 0

这是相关的,但与另一个post不同。

代码语言:javascript
复制
data = {'spike-2': [1,2,3], 'hey spke': [4,5,6], 'spiked-in': [7,8,9], 'no': [10,11,12]}
df = pd.DataFrame(data)

如果列名与多个子字符串条件匹配,则希望按名称选择列。

我试过使用和操作员

代码语言:javascript
复制
spike_cols = [col for col in df.columns if ('spike') & ('hey') in col]

这样我就能精确地得到我也用过的一列“嗨斯派克”

代码语言:javascript
复制
dfnew = df.filter(regex='spike'&'hey')

获取误差

TypeError:不支持的操作数类型为&:'str‘和'str’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-20 15:30:30

下面是一个没有regex的方法,只需使用in检查子字符串条件:

代码语言:javascript
复制
df[[col for col in df.columns if 'hey' in col and 'spike' in col]]

或者,如果您想使用regex,您可以:

代码语言:javascript
复制
df.filter(regex='(?=.*hey)(?=.*spike)')

See this answer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43523742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档