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

如何在Pandas中筛选包含指定字符串‘abc’的DataFrame列?

嘿,这问题不难,我给你分两种常见情况来解答,你按需选就行:

情况1:筛选**列名里包含'abc'**的列,返回列名列表

这是最常见的需求,两种简单方法搞定:

  • 方法一:用列表推导式,直观好懂,新手也能快速理解:
abc_cols = [col for col in df.columns if 'abc' in col]

原理就是遍历所有列名,把包含'abc'的列名挑出来放进列表。

  • 方法二:用Pandas自带的str.contains,更简洁高效,适合列很多的场景:
abc_cols = df.columns[df.columns.str.contains('abc')].tolist()

这里df.columns是索引对象,支持字符串方法,str.contains('abc')会返回一个布尔数组,用它过滤列名后转成列表就行。

情况2:筛选列内容里存在包含'abc'的元素的列,返回列名列表

如果你的需求是找那些列里至少有一个单元格的值带'abc'的列,那可以这么做:

  • 方法一:用apply遍历每一列检查:
abc_cols = df.columns[df.apply(lambda col: col.astype(str).str.contains('abc').any())].tolist()

这里先把列转成字符串类型(避免非字符串列报错),然后检查该列是否有任意一个元素包含'abc',最后筛选出符合条件的列名。

  • 方法二:矢量化操作,效率更高(大数据集推荐用这个):
abc_cols = df.columns[(df.astype(str).str.contains('abc')).any(axis=0)].tolist()

先把整个DataFrame转成字符串,然后逐列检查是否有匹配的元素,最后提取列名。

举个例子,就像你说的示例里如果Field1列有值包含'abc',那用情况2的方法就能得到['Field1']啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:10:39