在 pandas 中将多种日期格式转换为日期时间

Convert multiple date formats to datetime in pandas

我有一行日期格式不同的杂乱数据,我希望它们与 pandas

中的日期时间一致
df:
          Date
0    1/05/2015
1  15 Jul 2009
2     1-Feb-15
3   12/08/2019

当我运行这部分:

df['date'] = pd.to_datetime(df['date'], format='%d %b %Y', errors='coerce')

我明白了

        Date
0        NaT
1 2009-07-15
2        NaT
3        NaT

如何将其全部转换为 pandas 中的日期时间?

pd.to_datetime 能够处理同一列中的多种日期格式。指定一个format会阻碍它动态判断格式的能力,所以如果有多个类型就不要指定format:

import pandas as pd

df = pd.DataFrame({
    'Date': ['1/05/2015', '15 Jul 2009', '1-Feb-15', '12/08/2019']
})

df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
print(df)
        Date
0 2015-01-05
1 2009-07-15
2 2015-02-01
3 2019-12-08

*处理多个日期时间的能力存在限制。混合时区感知和时区未知日期时间将无法正确处理。同样混合使用 dayfirst 和 monthfirst 的符号将不会总是正确解析。