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

批量移除Pandas数据框列名中的数字后缀

批量移除Pandas数据框列名中的数字后缀

嗨,这种批量处理列名的需求完全不用手动一个个rename,太浪费时间了!结合你给出的列名例子,这里有几个高效的方法,一行代码就能搞定所有28列:

方法1:按分隔符拆分(最适合你的场景)

从你的例子看,列名都是用|分隔名称和数字的,直接按这个分隔符拆分,取前面的名称部分就行,还能顺便去掉前后多余的空格:

df.columns = df.columns.str.split('|').str[0].str.strip()

解释下:

  • str.split('|') 把每个列名按竖线分割成两部分的列表
  • str[0] 提取列表里的第一个元素(也就是你要保留的名称)
  • str.strip() 去掉名称前后的空格,比如把" Alcoholic Beverages "变成"Alcoholic Beverages"

方法2:用正则表达式替换(更通用)

如果你的列名格式偶尔有变化(比如分隔符不是|,或者数字位置不一样),可以用正则匹配并替换掉数字部分:

df.columns = df.columns.str.replace(r'\s*\|\s*\d+', '', regex=True)

这个正则的意思是:匹配|(前后可能带空格)加上后面的一串数字,把这整个部分替换成空字符串,直接保留前面的名称。

要是你的列名是名称直接跟数字(没有|),比如"Miscellaneous group00002928",可以用这个:

df.columns = df.columns.str.replace(r'\d+$', '', regex=True).str.strip()

它会匹配列名末尾的所有数字,替换为空,再去掉多余空格。

这些方法都是一次性处理所有列,完全不用写28行rename,在Colab里一行代码就搞定,既简洁又高效~

备注:内容来源于stack exchange,提问作者Joelle Kappert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 11:13:07