Избегать применения в pandas прокатки для "Rolling Cummax" - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу использовать групповую прокрутку для вычисления конечного 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, но мне не удается найти реализацию, избегающую комбинации of groupby и apply, которая, как известно, медленная - занимает 0,75 se c на моем компьютере для этого примера.

Спасибо за ваши идеи!

...