ENH: Add table-wise numba rolling to other agg funcions by mroeschke · Pull Request #38995 · pandas-dev/pandas (original) (raw)
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(10, 10**5))
roll_single = df.rolling(2, method="single")
roll_table = df.rolling(2, method="table")
%timeit roll_single.mean()
4.92 s ± 463 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
roll_single.mean(engine="numba", engine_kwargs={"nopython": True, "nogil": True, "parallel": True})
%timeit roll_single.mean(engine="numba", engine_kwargs={"nopython": True, "nogil": True, "parallel": True})
5.72 s ± 430 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
roll_table.mean(engine="numba", engine_kwargs={"nopython": True, "nogil": True, "parallel": True})
%timeit roll_table.mean(engine="numba", engine_kwargs={"nopython": True, "nogil": True, "parallel": True})
10.3 ms ± 1.23 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)