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

如何去除预测周期列字符串的前导零?用于DataFrame合并

解决DataFrame预测周期列名格式化问题

以下是几种高效实现列名格式化的方法,完美匹配你的需求:

方法一:拆分后转整数自动去前导零(最稳妥)

利用整数类型自动忽略前导零的特性,拆分列名后转整数再转回字符串,最后拼接:

current_cols = [
    '01+11', '02+10', '03+09', '04+08', '05+07',
    '06+06', '07+05', '08+04', '09+03', '10+02', '11+01'
]

desired_out = ['+'.join(str(int(part)) for part in col.split('+')) for col in current_cols]

这种方法能避免lstrip('0')可能出现的空字符串问题(比如列名是00+00时,lstrip会得到+,而转整数会得到0+0),兼容性更强。

方法二:正则表达式替换(最简洁)

用正则直接匹配并移除每个数字段的前导零:

import re

current_cols = [
    '01+11', '02+10', '03+09', '04+08', '05+07',
    '06+06', '07+05', '08+04', '09+03', '10+02', '11+01'
]

desired_out = [re.sub(r'\b0+(?=\d)', '', col) for col in current_cols]

正则\b0+(?=\d)会匹配单词边界后紧跟数字的一个或多个前导零,精准替换为空,无需拆分拼接。

方法三:直接处理DataFrame列名

如果要直接修改DataFrame的列名,用rename方法配合lambda表达式即可:

import pandas as pd

df = pd.DataFrame(columns=current_cols)
# 用方法一的逻辑重命名
df = df.rename(columns=lambda x: '+'.join(str(int(part)) for part in x.split('+')))
# 或者用方法二的正则逻辑
# df = df.rename(columns=lambda x: re.sub(r'\b0+(?=\d)', '', x))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:10:44