From d83e51be2c85fdc15c15d7116abaf01b418bff1e Mon Sep 17 00:00:00 2001 From: "JHM Darbyshire (iMac)" Date: Sun, 29 Aug 2021 19:01:54 +0200 Subject: [PATCH 1/2] perf: lose DataFrame.itertuples --- pandas/io/formats/style.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/io/formats/style.py b/pandas/io/formats/style.py index 5d523f59a46f8..a4e12d4e058a1 100644 --- a/pandas/io/formats/style.py +++ b/pandas/io/formats/style.py @@ -1047,7 +1047,8 @@ def _update_ctx_header(self, attrs: DataFrame, axis: int) -> None: Identifies whether the ctx object being updated is the index or columns """ for j in attrs.columns: - for i, c in attrs[[j]].itertuples(): + ser = attrs[j] + for i, c in ser.items(): if not c: continue css_list = maybe_convert_css_to_tuples(c) From b9225475d6c14764442b5718c58c09b8031d60a8 Mon Sep 17 00:00:00 2001 From: "JHM Darbyshire (iMac)" Date: Mon, 30 Aug 2021 18:42:39 +0200 Subject: [PATCH 2/2] perf: outer loop lookup --- pandas/io/formats/style.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/io/formats/style.py b/pandas/io/formats/style.py index 48e8707b3b400..31e10534d853a 100644 --- a/pandas/io/formats/style.py +++ b/pandas/io/formats/style.py @@ -1023,12 +1023,13 @@ def _update_ctx(self, attrs: DataFrame) -> None: ) for cn in attrs.columns: + j = self.columns.get_loc(cn) ser = attrs[cn] for rn, c in ser.items(): if not c or pd.isna(c): continue css_list = maybe_convert_css_to_tuples(c) - i, j = self.index.get_loc(rn), self.columns.get_loc(cn) + i = self.index.get_loc(rn) self.ctx[(i, j)].extend(css_list) def _update_ctx_header(self, attrs: DataFrame, axis: int) -> None: