如何用 Pandas 中的一系列数字减去日期时间索引?

How to substract datetime index by a series of numbers in Pandas?

我有一个类似于下面的 DataFrame,我想用 Day_Count 列中的数字减去 DateTimeIndex。

import pandas as pd

x = pd.DataFrame(np.arange(1,14), index = pd.date_range('2020-01-01', periods = 13, freq= 'D'), columns = ['Day_Count'])

                Day_Count
2020-01-01          1
2020-01-02          2
2020-01-03          3
2020-01-04          4
2020-01-05          5
2020-01-06          6
2020-01-07          7
2020-01-08          8
2020-01-09          9
2020-01-10         10
2020-01-11         11
2020-01-12         12
2020-01-13         13

因此,预期结果应具有与 2019-12-31 相同的 DateTimeIndex(例如,2020-01-01 减去 1 天,2020-01-02 减去 2 天,依此类推)。我尝试了以下代码,但它不起作用。

from dateutil.relativedelta import relativedelta
x.index = x.index - relativedelta(days = x.Day_Count)

请帮忙解决这个问题。提前谢谢你。

试试这个代码,看看它是否给出了预期的结果。

df.index = df.index - pd.to_timedelta(df['Day_Count'],unit='day')