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

如何批量提取DataFrame列名开头的数字?

批量修改DataFrame列名提取开头数字

你可以通过两种简洁的方式实现批量处理:

方法1:列表推导式结合正则

直接遍历所有列名,复用你已经验证过的正则提取逻辑:

import re
import pandas as pd

# 假设df是你的目标DataFrame
df.columns = [int(re.findall('(\d+)', col)[0]) for col in df.columns]

这个列表推导式会逐个处理每个列名,提取第一个连续数字组并转成整数,直接替换原列名。

方法2:使用Pandas内置字符串方法(更高效)

Pandas的Index对象支持字符串操作,用str.extract可以更简洁地完成批量提取:

df.columns = df.columns.str.extract('(\d+)', expand=False).astype(int)
  • str.extract('(\d+)')会从每个列名中提取第一个连续数字序列
  • expand=False确保返回的是Series而不是DataFrame
  • astype(int)将提取到的字符串转成整数类型(如果需要保留字符串格式可以去掉这一步)

如果你的列名开头固定是两位数字,也可以用更精准的正则'^(\d{2})'来匹配开头的两位数字,避免意外匹配到列名中间的数字:

# 精准匹配开头两位数字
df.columns = df.columns.str.extract('^(\d{2})', expand=False).astype(int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:21:11