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

如何使用Python将Excel通用格式数字(如43390)转换为日期

Excel序列日期转d/m/yyyy格式报错解决方案

报错原因

你指定的format='%d-%m-%Y'仅用于匹配01-05-2023这类字符串格式的日期,无法识别43390这类Excel数值型日期序列,因此触发格式匹配错误。
Excel的日期本质是从基准日期开始计数的天数,默认基准为1900年(存在1900闰年计算bug,实际基准要往前调整2天)。

解决步骤

  • 第一步:先把字段转成数值类型(避免字段存为字符串导致转换失败)
trans_data['DATE'] = pd.to_numeric(trans_data['DATE'], errors='coerce')
  • 第二步:将数值序列转换为pandas datetime类型
trans_data['DATE'] = pd.to_datetime(trans_data['DATE'], unit='D', origin='1899-12-30')

注:如果你使用的是Mac版旧Excel的1904日期系统,将origin参数值改为'1904-01-01'即可。

  • 第三步:按需转换为d/m/yyyy格式的字符串(如果不需要字符串格式可以跳过这步,直接用datetime类型做后续计算)
# 不带前导零:输出为 5/1/2019 这类格式
trans_data['DATE_FORMATTED'] = trans_data['DATE'].dt.strftime('%-d/%-m/%Y')
# 带前导零:输出为 05/01/2019 这类格式
# trans_data['DATE_FORMATTED'] = trans_data['DATE'].dt.strftime('%d/%m/%Y')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:54:03