pandas滚动窗口:从开始到x

时间:2018-02-19 22:04:37

标签: python pandas dataframe

对于pandas.DataFrame.rolling窗口,我可以设置window大小来描述固定宽度(固定元素数量或固定offset)。

如何获得始终从第一个条目开始并向前滚动到每个条目的窗口?例如,在DataFrame中有一系列x,我希望每行获得以下窗口:

    x    intended_window
0  10    [10]
1  11    [10,11]
2  12    [10,11,12]
3  13    [10,11,12,13]
4  14    [10,11,12,13,14]

1 个答案:

答案 0 :(得分:3)

您不需要中间结果 - 您可以使用pandas的扩展平均值直接计算。 Pandas提供了一个称为expanding窗口的功能,它允许您在扩展值窗口时执行计算。对于您的情况,您需要expanding.mean

df.x.expanding().mean()

0    10.0
1    10.5
2    11.0
3    11.5
4    12.0
Name: x, dtype: float64

请注意,它与您当前使用的内容相同:

df['intended_window'].apply(np.mean)

0    10.0
1    10.5
2    11.0
3    11.5
4    12.0
Name: intended_window, dtype: float64 

但前者的表现要高得多。