我熟悉 Pandas 滚动窗口函数,但它们的步长始终为 1。我想在 Pandas 中执行移动聚合函数,但条目不重叠。
In this Dataframe:
df.rolling(2).min()
将产生:
N/A 519 566 727 1099 12385
但我想要一个步长为 2 的固定窗口,所以它会产生:
519 727 12385
因为对于固定窗口,它应该按该窗口的大小进行步进。
中没有这样的内置参数rolling
函数,但您可以计算通常的滚动函数,然后跳过每个n
第 行(其中n=2
在你的情况下)。
df.rolling(n).min()[n-1::n]
正如您在评论中提到的,这可能会导致许多冗余计算,这些计算将被忽略(特别是如果n
很大)。
相反,您可以使用以下代码将数据分区(分组)到大小的容器中n
:
df.groupby(df.index // n).min()
我没有检查它是否确实更有效,但我相信应该如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)