You need to enable JavaScript to run this app. 如何筛选DataFrame中名称包含连续三位数字的列
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选DataFrame中名称包含连续三位数字的列

筛选符合命名规则的DataFrame列方法

正则规则说明

你需要的匹配「三位数字后接_diff」的规则用正则可以写为\d{3}_diff,其中:

  • \d{3}代表连续出现的3位数字
  • _diff是固定匹配的后缀
    如果需要严格要求该结构出现在列名末尾,可在末尾加结束符$,即正则改为\d{3}_diff$,避免匹配到中间包含该结构的列名。

实现方式1:列表推导式

需要搭配re模块做正则匹配:

import re

# 编译正则规则,可根据需求替换为r'121_diff'匹配指定数字
pattern = re.compile(r'\d{3}_diff')
# 列表推导式筛选符合规则的列名
selected_cols = [col for col in merged.columns if pattern.search(col)]
# 提取目标列
result_df = merged[selected_cols]

实现方式2:pandas filter方法(更简洁)

直接使用filter的regex参数即可,不需要额外写循环:

# 匹配所有符合三位数字+_diff规则的列
result_df = merged.filter(regex=r'\d{3}_diff')
# 匹配包含121_diff的列,等效于你之前用like参数的效果
result_df = merged.filter(regex=r'121_diff')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 11:48:01