rolling
函数中没有这样的内置参数,但是您可以计算通常的滚动函数,然后跳过每个第n
行(在您的情况下n=2
)。
df.rolling(n).min()[n-1::n]
正如您在评论中提到的那样,这可能会导致许多冗余计算被忽略(特别是如果n
很大)。
相反,您可以使用以下代码将数据分成大小为n
的分组:
df.groupby(df.index // n).min()
我没有检查它是否真的更有效率,但我相信它应该是更好的选择。
rolling()
函数的“墙上时间”为2分32秒,而groupby()
函数的“墙上时间”为7.08秒。 - sparkonhdfslambda
,所以 mean()
可能会更快。 - sparkonhdfs
min()
,因为数字很大,所以更容易说明我要找的内容。虽然使用平均值,但我仍想要一个固定窗口的聚合函数。 - sparkonhdfsdf.groupby(np.arrange(0,len(df),2)//2).min)
吗? - Quang Hoang