Как использовать apply() функцию после rolling() с method="table"

Рейтинг: 0Ответов: 0Опубликовано: 06.06.2023

Я пытаюсь прогнать DataFrame с 5 колонками через функцию rolling() и применить к ней apply(). Однако получается так, что при попадании в apply(x) входящий аргумент x имеет вид строки вместо таблицы, как мне добиться передачи в apply(x) таблицы?

def squared_with_numba_cache(x):
    # Тяжелые вычисления
    return # новый вид строки в DatFrame

df = pd.read_csv(path, header=0,
                 dtype=
{'open_time': int32, 'open': float16, 'high': float16, 'low': float16, 'close': float16}
                 ).fillna(0)

df1 = df.rolling(window=3,min_periods=3, method='table')
df1.apply(squared_with_numba_cache, engine='cython')

Моя цель: прогнать DataFrame через rolling() и применить к ней engine=numba или engine=cython. В функции ожидаю фрагмент DataFrame с размером window, далее совершаю манипуляции с этим фрагментом и возвращаю 1 строку (что-то по типу агрегирования по скользящему окну)

Идеально, если это будет реализовано вместе с DASK - главное скорость обработки.

Ответы

Ответов пока нет.