Pandas to_datetime 意外更改年份

Pandas to_datetime changes year unexpectedly

我有一个日期列,在使用 pandas read_csv 后表示为对象类型。我正在尝试将它转换为 pandas 日期时间对象,但是在使用 pd.to_datetime() 时它 return 是不正确的日期时间对象。

例如,我有这种格式的日期 01-06-68,其中 01 是日,06 是月,68 是年。将 pandas to_datetime() 应用于此字符串 returns 2068-06-01 但应该 return 1968-06-01,其中 06 是月份,01 是日期。

我使用 pandas to_datetime()、python 的日期时间、钟摆库尝试了所有可能的解决方案,但仍然出现错误。我该如何解决这个问题?

使用:

df['date'] = pd.to_datetime(df['date'].str[:-2] + '19' + df['date'].str[-2:])

另一个解决方案replace

df['date'] = pd.to_datetime(df['date'].str.replace(r'-(\d+)$', r'-19'))

样本:

print (df)
       date
0  01-06-70
1  01-06-69
2  01-06-68
3  01-06-67

df['date'] = pd.to_datetime(df['date'].str.replace(r'-(\d+)$', r'-19'))
print (df)
        date
0 1970-01-06
1 1969-01-06
2 1968-01-06
3 1967-01-06

您在 pd.to_datetime
中有一个 format= 参数 你或许可以尝试 df['my_col'] = pd.to_datetime(df['my_col'], format='%d-%m-%Y')

在此处查看其他方法:Convert Pandas Column to DateTime