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

pandas如何筛选包含指定字符串的列名并生成列表

最优实现方案

两种常用的高效实现方式,优先推荐列表推导式,性能最优且写法简洁:

  • 方案1:列表推导式(性能最优,无需调用pandas额外方法)
collist = [col for col in df.columns if '_main' in col]

这种写法时间复杂度为O(n)(n为列数),不需要做额外的类型转换,是所有方案里开销最低的,绝大多数场景下优先选择。

  • 方案2:pandas内置字符串匹配方法(适合后续还要做列过滤等链式操作的场景)
collist = df.columns[df.columns.str.contains('_main')].tolist()

如果之后还要直接基于匹配结果筛选df数据,可以直接链式写df.filter(like='_main')一步得到筛选后的子df,不需要先存列名列表:

# 直接得到只含_main列的子DataFrame
df_main = df.filter(like='_main')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 15:24:04