如何将pandas.dataframe的索引提前四分之一?

时间:2016-09-24 11:17:16

标签: python pandas

我想将pandas.dataframe的索引移动四分之一。数据框如下所示:

            ID   Nowcast  Forecast
1991-01-01   35   4144.70   4137.40
1991-01-01   40   4114.00   4105.00
1991-01-01   60   4135.00   4130.00
....

到目前为止,我计算了第一个时间戳1991-01-01的出现次数并相应地移动了数据帧。代码是:

Stamps = df.index.unique()
zero = 0
for val in df.index:
    if val == Stamps[0]:
        zero = zero + 1
df = df.shift(zero)

该操作产生以下数据帧:

              ID   Nowcast  Forecast 
1991-04-01   35.0   4144.70   4137.40       
1991-04-01   40.0   4114.00   4105.00       
1991-04-01   60.0   4135.00   4130.00  

我这样做的方式让我感到低效和容易出错。有没有更好的办法?

1 个答案:

答案 0 :(得分:1)

您可以使用pd.DateOffset()

In [110]: df
Out[110]:
            ID  Nowcast  Forecast
1991-01-01  35   4144.7    4137.4
1991-01-01  40   4114.0    4105.0
1991-01-01  60   4135.0    4130.0

In [111]: df.index += pd.DateOffset(months=3)

In [112]: df
Out[112]:
            ID  Nowcast  Forecast
1991-04-01  35   4144.7    4137.4
1991-04-01  40   4114.0    4105.0
1991-04-01  60   4135.0    4130.0