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

Pandas如何筛选DataFrame中列名以carr开头的列

Pandas筛选列名以指定字符串开头的列

问题场景

假设有一个包含多列的数据集,部分列名以carr开头,原始数据集结构如下:

carrcarrerbanana
OneTwoThree

需要筛选后仅保留列名以字符串carr开头的列,预期输出结果如下:

carrcarrer
OneTwo

测试用示例DataFrame构造代码:

import pandas as pd
df = pd.DataFrame({
    "Carrer":[1,2,3],
    "Carr":[2,3,1],
    "Banana":[1,5,7]
})

实现方法

方法1:pandas内置字符串方法(推荐)

直接调用列索引的字符串匹配方法,代码简洁执行效率高。
如果需要严格区分大小写(仅匹配小写carr开头的列):

filtered_df = df.loc[:, df.columns.str.startswith("carr")]

如果需要不区分大小写匹配(比如测试用例里首字母大写的Carr/Carrer也能被匹配到),先把列名统一转小写再判断即可:

filtered_df = df.loc[:, df.columns.str.lower().str.startswith("carr")]

方法2:列表推导筛选列名(新手友好)

逻辑更直观,先遍历所有列名挑出符合条件的,再直接取对应列,不用记loc的切片规则:

# 要做严格大小写匹配就去掉.lower()即可
match_cols = [col for col in df.columns if col.lower().startswith("carr")]
filtered_df = df[match_cols]

两种方法跑测试用例,最终返回的DataFrame都会只保留Carr、Carrer两列,完全符合预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:18:38