# to_latex bug for midrule location #18326

Closed
opened this Issue Nov 16, 2017 · 1 comment

Projects
None yet
3 participants

### rdturnermtl commented Nov 16, 2017

 There are a lot of other posts (e.g. #14484 #16718 #17959 etc) with bugs in the to_latex() function so this might have a common source. The midrule location is wrong when the index has a name but index_names=False. This bug shows up even in simple dataframes without multi-indexing like the other bugs open at the moment: import pandas as pd import numpy as np df = pd.DataFrame(data=np.random.randn(5,3)) df.index.name = 'foo' print df.to_latex(index_names=False)  gives \begin{tabular}{lrrr} \toprule {} & 0 & 1 & 2 \\ 0 & 1.898767 & -0.841932 & -1.681799 \\ \midrule 1 & 0.057378 & 0.041809 & 0.612301 \\ 2 & 0.799285 & 0.477284 & -0.331426 \\ 3 & -0.412104 & -0.680420 & -1.092955 \\ 4 & -1.485436 & -1.180868 & -0.063881 \\ \bottomrule \end{tabular}  It should be \begin{tabular}{lrrr} \toprule {} & 0 & 1 & 2 \\ \midrule 0 & 1.898767 & -0.841932 & -1.681799 \\ 1 & 0.057378 & 0.041809 & 0.612301 \\ 2 & 0.799285 & 0.477284 & -0.331426 \\ 3 & -0.412104 & -0.680420 & -1.092955 \\ 4 & -1.485436 & -1.180868 & -0.063881 \\ \bottomrule \end{tabular}  Also, the width of {} is ignored for the space padding in the index column, which is a bit annoying. This is from: Python 2.7.13 numpy==1.13.1 pandas==0.20.3

Member

### gfyoung commented Nov 16, 2017 • edited

 @rdturnermtl : Thanks for reporting this! Definitely a bug no doubt. Investigation and PR are welcome! Looks related to #14484 and #16718

Merged

### tomneep added a commit to tomneep/pandas that referenced this issue Apr 24, 2018

 Add tests and whatsnew entries for (pandas-dev#18326) and (pandas-dev… 
…#19981)
 f7b1889 

### toobaz added a commit that referenced this issue Apr 25, 2018

 BUG: fix to_latex() when using MultiIndex with NaN in (#20797) 
closes #14249
closes #19981
closes #18326
closes #18669
 7ec74e5