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

Comments

Projects
None yet
3 participants
@simonjayhawkins
Copy link
Member

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

This comment has been minimized.

Copy link
Member

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
You can’t perform that action at this time.