You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas的df.filter筛选含多个关键词的多列?

筛选包含指定关键词的多类列的解决方案

嘿,我来帮你搞定这个筛选问题!从你给出的列名来看,你应该是想把列名包含Frequency的列,以及所有包含2018-08-19的列都选出来对吧?其实正则是可以实现的,或者用布尔索引的方式会更直观,下面给你两种可行的方法:

方法1:用df.filter()结合正则表达式

正则里的|符号表示“或”的逻辑,直接把两个关键词用它连接起来就能匹配满足任一条件的列:

filtered_df = df.filter(regex='Frequency|2018-08-19')

这样就能一次性筛选出所有包含Frequency或者2018-08-19的列啦。

方法2:用布尔索引筛选列

如果你觉得正则不够直观,也可以用str.contains()生成布尔掩码来筛选:

# 生成布尔掩码:列名包含Frequency 或者 包含2018-08-19
mask = df.columns.str.contains('Frequency') | df.columns.str.contains('2018-08-19')
# 用掩码筛选列
filtered_df = df.loc[:, mask]

这种方式灵活性更高,如果之后需要添加更多筛选条件,直接在掩码里用|(或)或者&(且)组合就行。比如如果真的需要筛选同时包含两个关键词的列(虽然你的列名里没有这类,但可以参考),只需要把|换成&:

mask = df.columns.str.contains('Frequency') & df.columns.str.contains('2018-08-19')
filtered_df = df.loc[:, mask]

内容的提问来源于stack exchange,提问作者Sophia Deng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 12:48:10