Python pandas to_datetime 工作不一致:为什么月份和日期混淆了?

Jul*_*ian 2 datetime python-3.x pandas

使用 python pandas 包我运行

pd.to_datetime("23.01.2019 06:50:59")
Run Code Online (Sandbox Code Playgroud)

并得到预期结果

Timestamp('2019-01-23 06:50:59')
Run Code Online (Sandbox Code Playgroud)

然而,运行时

pd.to_datetime("11.01.2019 18:34:39")
Run Code Online (Sandbox Code Playgroud)

日和月混淆了,我得到

Timestamp('2019-11-01 18:34:39')
Run Code Online (Sandbox Code Playgroud)

预期是:Timestamp('2019-01-11 18:34:39')

关于为什么会发生这种情况以及如何避免这种情况有什么想法吗?谢谢!

jez*_*ael 5

这是可能的使用参数dayfirst=True

print (pd.to_datetime("11.01.2019 18:34:39", dayfirst=True))
2019-01-11 18:34:39
Run Code Online (Sandbox Code Playgroud)

一般来说,解决方案是指定日期时间的格式:

print (pd.to_datetime("11.01.2019 18:34:39", format='%d.%m.%Y %H:%M:%S'))
2019-01-11 18:34:39
Run Code Online (Sandbox Code Playgroud)

为什么月份和日期混淆了?

因为 pandas 会尝试猜测格式并且MMDDYYYY具有更高的优先级,例如DDMMYYY.