Python 将 1970 年之前的日期格式从 dd/mm/yy 更改为 dd/mm/yyyy
Python change the date format from dd/mm/yy to dd/mm/yyyy for the dates before 1970
我有一个 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...
我尝试转换为日期时间数据类型,如下所示:
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?
您需要通过掩码手动更改年份,例如所有年 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
我有一个 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...
我尝试转换为日期时间数据类型,如下所示:
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?
您需要通过掩码手动更改年份,例如所有年 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