(row) Index Name with to_html(header=False) is not displayed · Issue #23788 · pandas-dev/pandas (original) (raw)

Code Sample, a copy-pastable example if possible

import pandas as pd import numpy as np df = pd.DataFrame(np.zeros((2, 2), dtype=int)) df.index.name = 'index.name' df.to_html(header=False)

0 0 0
1 0 0

import pandas as pd import numpy as np df = pd.DataFrame(np.zeros((2, 2), dtype=int)) df.index = pd.MultiIndex.from_product([['a'], ['b', 'c']], names=[ 'index.name.0', 'index.name.1']) df.to_html(header=False)

a b 0 0
c 0 0

Problem description

to_html(header=False) is not displaying the (row) Index names. The header parameter should be analogous to the index parameter and hide the columns Index only and leave the (row) Index names displayed.

to hide the display of the row Index names, the index_names=False parameter should be used.

the problem is due to an early return in the composition of the HTML header. the to_html parameter header should not be confused with the HTML header.

def _write_header(self, indent):
truncate_h = self.fmt.truncate_h
row_levels = self.frame.index.nlevels
if not self.fmt.header:
# write nothing
return indent

Expected Output

index.name
0 0 0
1 0 0
index.name.0 index.name.1
a b 0 0
c 0 0

Output of pd.show_versions()

INSTALLED VERSIONS

commit: None
python: 3.6.5.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.23.0
pytest: 3.5.1
pip: 10.0.1
setuptools: 39.1.0
Cython: 0.28.2
numpy: 1.14.3
scipy: 1.1.0
pyarrow: None
xarray: None
IPython: 6.4.0
sphinx: 1.7.4
patsy: 0.5.0
dateutil: 2.7.3
pytz: 2018.4
blosc: None
bottleneck: 1.2.1
tables: 3.4.3
numexpr: 2.6.5
feather: None
matplotlib: 2.2.2
openpyxl: 2.5.3
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.4
lxml: 4.2.1
bs4: 4.6.0
html5lib: 1.0.1
sqlalchemy: 1.2.7
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

cc @WillAyd