【发布时间】:2020-06-25 04:28:05
【问题描述】:
我有一个如下所示的数据框
df1 = pd.DataFrame({'person_id': [11,11,11,21,21],
'admit_dates': ['03/21/2015', '01/21/2016', '7/20/2018','01/11/2017','12/31/2011'],
'discharge_dates': ['05/09/2015', '01/29/2016', '7/27/2018','01/12/2017','01/31/2016'],
'drug_start_dates': ['05/29/1967', '01/21/1957', '7/27/1959','01/01/1961','12/31/1961'],
'offset':[223,223,223,310,310]})
我想做的是将offset 中的years 添加到日期列中。
所以,我试图用unit=y 或unit=Y 将偏移量转换为timedelta 对象,然后转移admit_dates
df1['offset'] = pd.to_timedelta(df1['offset'],unit='Y') #also tried with `y` (small y)
df1['shifted_date'] = df1['admit_dates'] + df1['offset']
但是,我收到以下错误
ValueError:不再支持单位“M”和“Y”,因为它们不支持 表示明确的 timedelta 值持续时间。
还有其他优雅的方法可以将日期按years 移动吗?
【问题讨论】:
-
年份偏移的问题是您最终可能会得到无效的日期,例如当将
02/29/2020偏移 3 年时。
标签: python pandas dataframe python-datetime timedelta