Python的改变从日/日期格式/ YY到DD /月/年的日期1970年以前
问题描述:
我有一个具有日期列像下面蟒大熊猫数据帧:Python的改变从日/日期格式/ YY到DD /月/年的日期1970年以前
'Birth Date'
0 22/04/73
1 22/03/53
2 22/04/73
3 14/08/77
4 08/05/50
欲这个对象数据类型转换为日期格式,是这样的:1953年4月6日...
我试图转换为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年?
答
您需要通过掩码手动更改年份,例如,多为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
的可能的复制[如何分析与2位数年份字符串的日期?(https://*.com/questions/16600548/how-to-解析字符串日期与2位数字年) – Psytho
https://*.com/questions/40422517/convert-date-from-dd-mm-yy-to-dd-mm-yyyy-using-python – Psytho
@ Alex.S当涉及到熊猫时,(几乎总是)日期时间操作有更好/不同的解决方案。 –