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

如何避免Pandas列中字符串转日期的识别错误与格式问题

解决Pandas日期字符串解析中日月颠倒的问题

直接用astype('datetime64[ns]')转换时,Pandas会自动推断日期格式,但当日、月数值都≤12时,会优先采用MM-DD-YYYY的解析逻辑,导致12-10-2021被误判为12月10日;而13-10-2021因为13超过月份的最大取值12,才会被正确识别为10月13日。

要得到正确的YYYY-MM-DD格式结果,你需要明确指定原字符串的日期格式,推荐使用pd.to_datetime()并配合format参数:

import pandas as pd

# 示例数据
df = pd.DataFrame({'Date': ["12-10-2021  00:00", "13-10-2021  00:00"]})

# 指定原格式为"DD-MM-YYYY  HH:MM"(注意日期与时间间的两个空格)
df['Date'] = pd.to_datetime(df['Date'], format='%d-%m-%Y  %H:%M')

执行后df['Date']的结果会是:

0   2021-10-12
1   2021-10-13
Name: Date, dtype: datetime64[ns]

如果你的数据中存在多种日期格式混合,也可以通过dayfirst=True参数强制优先解析日部分:

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

不过这种方式的效率略低于指定明确格式,且仍存在歧义风险,因此优先推荐指定format参数的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:15:31