Pandas to_datetime函数日期解析行为不一致原因咨询
问题原因解析
这种差异的核心是pd.to_datetime()的自动日期格式推断逻辑在不同场景下的判断规则不同:
- 单独解析单个字符串
'01/12/2020'时,因为01和12都属于合法月份范围(1-12),pandas默认优先采用美式日期格式(mm/dd/yyyy),所以把01识别为月份,12识别为日期,最终得到2020年1月12日。 - 当日期字符串存入DataFrame列后,pandas会基于整列的样本数据进行格式推断。如果列中存在类似
'31/12/2020'这类无法用美式格式解析的日期(31不可能是月份),pandas会自动切换为欧式日期格式(dd/mm/yyyy),此时01被识别为日期,12被识别为月份,最终得到2020年12月1日。
本质上是因为你没有显式指定format='%d/%m/%Y'参数,让pandas的自动推断逻辑有了调整空间,才出现了两种不同的解析结果。
内容的提问来源于stack exchange,提问作者Salih
相关产品推荐
相关产品推荐

