对于1970年之前的日期,Python将日期格式从dd / mm / yy更改为dd / mm / yyyy

时间:2017-12-18 10:11:18

标签: python pandas string-to-datetime

我有一个python pandas数据框,其日期列如下所示:

'Birth Date'
0     22/04/73
1     22/03/53
2     22/04/73
3     14/08/77
4     08/05/50

我想将此对象数据类型转换为日期格式,如下所示:04/06/1953 ...

我尝试转换为datetime数据类型,如下所示:

df['Birth Date']=pandas.to_datetime(df['Birth Date'],format='%d/%m/%y')

但输出如下:

0    1973-04-22
1    2053-03-22
2    1973-04-22
3    1977-08-14
4    2050-05-08

如何将1953年,1950年等作为年份而非2053年,2050年?

1 个答案:

答案 0 :(得分:4)

您需要通过掩码手动更改年份,例如所有年份2017减去100年后的所有年份:

df['Birth Date']= pd.to_datetime(df['Birth Date'],format='%d/%m/%y')
df['Birth Date'] = df['Birth Date'].mask(df['Birth Date'].dt.year > 2017, 
                                         df['Birth Date'] - pd.offsets.DateOffset(years=100))
print (df)
  Birth Date
0 1973-04-22
1 1953-03-22
2 1973-04-22
3 1977-08-14
4 1950-05-08