Pandas рассчет mode() на скользящем окне

Как быстро посчитать моду на скользящем окне в pandas?

Средствами pandas выдает ошибку:

Dts[fnc].rolling(1000).mode()

AttributeError: 'Rolling' object has no attribute 'mode'

Через apply и lambda очень долго:

%timeit Dts[fnc].rolling(1000).apply(lambda x: stats.mode(x)[0])

Результат:

5.67 s ± 277 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)


Ответы (1 шт):

Автор решения: MaxU

Попробуйте воспользоваться "родным" Pandas методом Series.mode():

Dts[fnc].rolling(1000).apply(lambda x: x.mode()[0])
→ Ссылка