具有PeriodIndex和DatetimeIndex的Pandas DataFrame上具有偏移量的滚动窗口

时间:2019-02-13 14:06:51

标签: python pandas dataframe rolling-sum

创建具有每日PeriodIndex的熊猫DataFrame并基于偏移量(例如“ 5D”)进行滚动窗口计算时,结果与预期不符。

我希望滚动窗口是最近5天,但是该窗口似乎是从索引的开头开始,并且每个项目都在增长。

滚动对于具有DatetimeIndex的DataFrame可以按预期进行

df_datetimeindex = pd.DataFrame([0.5]*10, columns=['data'], index=pd.date_range(start='2019', periods=10, freq='D'))
df_periodindex = pd.DataFrame([0.5]*10, columns=['data'], index=pd.period_range(start='2019', periods=10, freq='D'))
display(
    df_datetimeindex.data.rolling('5D', min_periods=1).sum(),
    df_periodindex.data.rolling('5D', min_periods=1).sum()
)

display(df_datetimeindex.index, df_periodindex.index)
display(df_datetimeindex.data.rolling('5D', min_periods=1), df_periodindex.data.rolling('5D', min_periods=1))

收益

2019-01-01    0.5
2019-01-02    1.0
2019-01-03    1.5
2019-01-04    2.0
2019-01-05    2.5
2019-01-06    2.5
2019-01-07    2.5
2019-01-08    2.5
2019-01-09    2.5
2019-01-10    2.5
Freq: D, Name: data, dtype: float64
2019-01-01    0.5
2019-01-02    1.0
2019-01-03    1.5
2019-01-04    2.0
2019-01-05    2.5
2019-01-06    3.0
2019-01-07    3.5
2019-01-08    4.0
2019-01-09    4.5
2019-01-10    5.0
Freq: D, Name: data, dtype: float64
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
               '2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08',
               '2019-01-09', '2019-01-10'],
              dtype='datetime64[ns]', freq='D')
PeriodIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
             '2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08',
             '2019-01-09', '2019-01-10'],
            dtype='period[D]', freq='D')
Rolling [window=432000000000000,min_periods=1,center=False,win_type=freq,axis=0]
Rolling [window=432000000000000,min_periods=1,center=False,win_type=freq,axis=0]

我错过了对此行为的解释吗?

0 个答案:

没有答案