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

使用pd.to_datetime转换日期格式时遇ValueError问题求助

解决日期格式转换错误的方案

错误原因

你之前的代码错误在于格式字符串和原数据完全不匹配:

  • 原数据是mm/dd/yyyy(如1/16/1962,即1月16日),分隔符是斜杠/,顺序是「月/日/年」
  • 你用的format="%d-%m-%Y"是「日-月-年」的格式,分隔符是横杠-,顺序和分隔符都不对,自然触发匹配错误。
  • dayfirst=True参数是让pandas把日期字符串的第一个部分当作「日」,但你的数据第一个部分是「月」,所以这个参数反而会导致解析逻辑混乱。

正确解决步骤

1. 先正确解析日期为datetime类型

首先要把索引的字符串日期正确解析成pandas的datetime类型,指定对应原数据的格式:

df.index = pd.to_datetime(df.index, format="%m/%d/%Y")

这里%m代表月份,%d代表日期,%Y代表4位年份,分隔符和原数据一致用/,能精准匹配1/16/1962这类格式。

2. 转换为dd/mm/yyyy格式显示

根据需求选择以下两种方式:

  • 方式一:将索引转为字符串格式(适合仅需显示,无需后续时间操作)
    把已解析的datetime索引转成dd/mm/yyyy格式的字符串:
    df.index = df.index.strftime("%d/%m/%Y")
    
  • 方式二:保持datetime类型,仅修改显示格式(适合后续需要时间运算)
    设置pandas全局日期显示格式,不改变索引的datetime类型:
    pd.options.display.date_format = "%d/%m/%Y"
    
    这样后续显示索引时都会自动用dd/mm/yyyy格式,同时保留datetime类型的所有时间操作能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:10:05