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

pandas拼接年月列时月份前导零缺失问题如何解决

问题原因

拆分得到的月份列为数值类型时,直接转字符串不会保留1-9月的前导零:例如6月转字符串后是"6"而非"06",拼接后就会出现20006这类缺位结果。

解决方案

方案1:适配你当前已拆分好年、月、日列的场景

用str.zfill(2)给转成字符串的月份自动补前导零,固定长度为2位:

df["period"] = df["y"].astype(str) + df["m"].astype(str).str.zfill(2)

该方法对10-12月的两位月份无影响,"10"、"12"这类值经过处理后不会发生变化。

方案2:从根源避免手动拼接的格式问题

你之前pandas.to_datetime()解析失败,是因为没有指定日期格式规则:你的原始数据是日/月/年格式,默认解析逻辑按美式「月/日/年」识别,遇到14、25这类大于12的数值就会报错。只要指定dayfirst=True参数即可正常解析,不需要手动拆分列,后续生成周期字段直接调用日期格式化方法即可,自动补全前导零:

# 直接解析原始日期列
df["parsed_date"] = pd.to_datetime(df["你的原始日期列名"], dayfirst=True)
# 生成YYYYMM格式的周期字段
df["period"] = df["parsed_date"].dt.strftime("%Y%m")

该方案容错性更高,不会出现手动拼接时的位数错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:12:13