pandas滚动窗口:从start到x的长度可变

asc*_*ter 2 python dataframe pandas

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

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

    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]
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 5

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

\n\n
df.x.expanding().mean()\n\n0    10.0\n1    10.5\n2    11.0\n3    11.5\n4    12.0\nName: x, dtype: float64\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
df[\'intended_window\'].apply(np.mean)\n\n0    10.0\n1    10.5\n2    11.0\n3    11.5\n4    12.0\nName: intended_window, dtype: float64 \n
Run Code Online (Sandbox Code Playgroud)\n\n

但前者的性能要高得多。

\n