Skip to content

Commit 66980c6

Browse files
author
y-p
committed
Merge pull request #5589 from y-p/PR_fix_slow_truncated_large_repr_html_5588
BUG: to_html doesn't slice index to max_rows before formatting
2 parents 2e4ca43 + 76eb112 commit 66980c6

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

pandas/core/format.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -819,14 +819,14 @@ def _write_body(self, indent):
819819

820820
def _write_regular_rows(self, fmt_values, indent, truncated):
821821
ncols = min(len(self.columns), self.max_cols)
822-
822+
nrows = min(len(self.frame), self.max_rows)
823823
fmt = self.fmt._get_formatter('__index__')
824824
if fmt is not None:
825-
index_values = self.frame.index.map(fmt)
825+
index_values = self.frame.index[:nrows].map(fmt)
826826
else:
827-
index_values = self.frame.index.format()
827+
index_values = self.frame.index[:nrows].format()
828828

829-
for i in range(min(len(self.frame), self.max_rows)):
829+
for i in range(nrows):
830830
row = []
831831
row.append(index_values[i])
832832
row.extend(fmt_values[j][i] for j in range(ncols))

vb_suite/frame_methods.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,20 @@ def f(x):
145145
frame_to_string_floats = Benchmark('df.to_string()', setup,
146146
start_date=datetime(2010, 6, 1))
147147

148+
#----------------------------------------------------------------------
149+
# to_html
150+
151+
setup = common_setup + """
152+
nrows=500
153+
df = DataFrame(randn(nrows, 10))
154+
df[0]=period_range("2000","2010",nrows)
155+
df[1]=range(nrows)
156+
157+
"""
158+
159+
frame_to_html_mixed = Benchmark('df.to_html()', setup,
160+
start_date=datetime(2010, 6, 1))
161+
148162
# insert many columns
149163

150164
setup = common_setup + """

0 commit comments

Comments
 (0)