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

pd.to_datetime转换日期报错ValueError:时间数据格式不匹配求助

解决方法

你的问题出在release_date列里混合了多种日期格式——既有完整的YYYY-MM-DD格式,又有仅含年份的YYYY格式(比如报错里的"1922"),而pd.to_datetime默认按统一格式解析,所以触发了格式不匹配的错误。下面是两种可行的解决方式:

方法一:自动推断混合格式(推荐)

直接给pd.to_datetime加上format='mixed'参数,让pandas自动识别每个日期字符串的格式:

df_tracks.set_index('release_date', inplace=True)
# 添加format='mixed'参数
df_tracks.index = pd.to_datetime(df_tracks.index, format='mixed')
df_tracks.head()

这个参数会逐个判断每个元素的格式,能兼容纯年份、不同分隔符的日期等多种情况,无需手动处理每个格式。

方法二:手动统一日期格式

如果需要把纯年份的日期统一转为当年的1月1日,可以先预处理数据再转换:

# 先重置索引,把release_date变回普通列
df_tracks.reset_index(inplace=True)
# 对仅含4位数字的日期补全为YYYY-01-01
df_tracks['release_date'] = df_tracks['release_date'].apply(
    lambda x: f"{x}-01-01" if len(str(x)) == 4 else x
)
# 重新设置索引并转换为日期类型
df_tracks.set_index('release_date', inplace=True)
df_tracks.index = pd.to_datetime(df_tracks.index)
df_tracks.head()

这种方式能精准控制日期的解析结果,适合对日期格式有统一要求的场景。

内容的提问来源于stack exchange,提问作者Kondapalli Sri Krishna Priya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:42:51