首页 > 解决方案 > 避免在熊猫滚动中申请“滚动cummax”

问题描述

我想使用 groupby rolling 来计算时间序列的尾随 cummmax,比如

import time
import pandas as pd


df_example = pd.DataFrame({"value": np.random.normal(1500), "group": 1500 * ["A"]})
t = time.process_time()
df_example["value"].rolling(100).apply(lambda x: x.cummax().max(), raw=False)
elapsed_time = time.process_time() - t
print(elapsed_time)

这是我所期望的,即计算滚动 cummax,但我找不到避免组合 groupby 和 apply 的实现,这已知是慢的 - 对于这个例子,在我的计算机上需要 0.75 秒。

谢谢你的想法!

标签: pythonpandasrolling-computation

解决方案


推荐阅读