在熊猫中减去timedelta

时间:2020-02-25 11:59:17

标签: python pandas timedelta

我有一个包含两列(日期和日期)的数据框。

    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的内容。

2 个答案:

答案 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_timedeltaunit=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]
相关问题