熊猫数据框中的不重叠滚动窗口

时间:2019-08-21 16:14:15

标签: python pandas dataframe

我熟悉Pandas Rolling窗口函数,但它们的步长始终为1。我想在Pandas中执行移动聚合函数,但输入项不要重叠。

在此数据框中:enter image description here

df.rolling(2).min()

将产生:

N/A 519 566 727 1099 12385

但是我想要一个步长为2的固定窗口,所以它会产生:

519 727 12385

由于窗口是固定的,因此应该以该窗口的大小为准。

1 个答案:

答案 0 :(得分:2)

rolling函数中没有这样的内置参数,但是您可以计算常用的滚动函数,然后跳过每第n行(在您的情况下为n=2)。 / p>

df.rolling(n).min()[n-1::n]

正如您在评论中提到的那样,这可能会导致许多冗余计算将被忽略(特别是如果n大的话)。 相反,您可以使用以下代码将数据划分(分组)为大小为n的bin:

df.groupby(df.index // n).min()

我没有检查它是否确实更有效,但我认为应该如此。