PERF: halve render time in Styler with itertuples by attack68 · Pull Request #39972 · pandas-dev/pandas (original) (raw)

 before           after         ratio
     [dfb92d0f]       [e5c2790b]
     <master>         <perf_itertups>
-         149±1ms         74.4±2ms     0.50  io.style.RenderApply.time_render(24, 120)
-        31.9±1ms       15.9±0.8ms     0.50  io.style.RenderApply.time_render(24, 12)
-       86.3±20ms         42.3±1ms     0.49  io.style.RenderApply.time_render(12, 120)
-      12.2±0.2ms       5.93±0.2ms     0.49  io.style.RenderApply.time_render(12, 12)
-      44.8±0.5ms       21.7±0.3ms     0.48  io.style.RenderApply.time_render(36, 12)
-         227±2ms         99.9±1ms     0.44  io.style.RenderApply.time_render(36, 120)

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.

FYI Styler now faster than to_html, even without any function stripping...

df = pd.DataFrame(np.random.rand(10000,10))
%timeit df.to_html()
1.9 s ± 63.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
%timeit df.style.render()
1.71 s ± 14.2 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)