我有一个数据框,其中包含使用 pd.to_datetime() 转换的日期列。当我检查数据时,我发现很少有这些日期的年份被提到为 2216 年,这应该是 2016 年。您能帮我将这些日期的年份从 2216 年更改为 2016 年吗
Date
0 2216-12-21
1 2216-12-23
2 2216-01-31
3 2016-12-23
4 2216-12-27
5 2216-12-25
6 2016-12-23
我尝试使用 str.replace
df['Date'] = df['Date'].str.replace("2216","2016")
但出现以下错误
Can only use .str accessor with string values, which use np.object_ dtype in pandas
提前致谢
Use:
df['Date'] = df['Date'].mask(df['Date'].dt.year == 2216,
df['Date'] + pd.offsets.DateOffset(year=2016))
print (df)
Date
0 2016-12-21
1 2016-12-23
2 2016-01-31
3 2016-12-23
4 2016-12-27
5 2016-12-25
6 2016-12-23
为了获得更好的性能:
df['Date'] = df['Date'].mask(df['Date'].dt.year == 2216, df['Date'] -
pd.to_timedelta(200, unit='y') +
pd.to_timedelta(12, unit='h'))
print (df)
Date
0 2016-12-21
1 2016-12-23
2 2016-01-31
3 2016-12-23
4 2016-12-27
5 2016-12-25
6 2016-12-23
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)