Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(row) Index Name with to_html(header=False) is not displayed #23788

Closed
simonjayhawkins opened this issue Nov 19, 2018 · 1 comment · Fixed by #24547
Closed

(row) Index Name with to_html(header=False) is not displayed #23788

simonjayhawkins opened this issue Nov 19, 2018 · 1 comment · Fixed by #24547
Labels
Bug IO Data IO issues that don't fit into a more specific label Output-Formatting __repr__ of pandas objects, to_string
Milestone

Comments

@simonjayhawkins
Copy link
Member

simonjayhawkins commented Nov 19, 2018

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

@gfyoung
Copy link
Member

gfyoung commented Nov 21, 2018

This isn't just restricted to HTML. It's a bug across the board, even with to_csv.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug IO Data IO issues that don't fit into a more specific label Output-Formatting __repr__ of pandas objects, to_string
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants