我有一个包含两列(日期和日期)的数据框。
df = pd.DataFrame({'date':[2020-01-31, 2020-01-21, 2020-01-11], 'days':[1, 2, 3]})
我想要第三列(date_2)
,该列要减去从日期算起的天数。因此,date_2
将是[2020-01-30, 2020-01-19, 2020-01-8]
。
我知道timedelta(days = i)
,但是我不能像熊猫中的df['days']
那样给它i
的内容。
答案 0 :(得分:4)
将to_datetime
用于日期时间,并用Series.sub
减去to_timedelta
创建的时间增量:
df['new'] = pd.to_datetime(df['date']).sub(pd.to_timedelta(df['days'], unit='d'))
print (df)
date days new
0 2020-01-31 1 2020-01-30
1 2020-01-21 2 2020-01-19
2 2020-01-11 3 2020-01-08
答案 1 :(得分:4)
将to_timedelta
与unit=d
一起使用并减去
>>pd.to_datetime(df['date'])-pd.to_timedelta(df['days'],unit='d')
0 2020-01-30
1 2020-01-19
2 2020-01-08
dtype: datetime64[ns]