2016-11-21 3 views
2

Wenn ich DataFrame.set_index verwenden, erhalte ich dieses Ergebnis:Pandas Datenrahmen in HTML ohne die zusätzliche Zeile Anzeige

import pandas as pd 

df = pd.DataFrame([['foo',1,3.0],['bar',2,2.9], 
        ['baz',4,2.85],['quux',3,2.82]], 
       columns=['name','order','gpa']) 
df.set_index('name') 

enter image description here

Notiere die unnötige Reihe ... Ich weiß, es tut dies, weil es das behält obere linke Zelle für den Spaltentitel, aber das interessiert mich nicht, und es macht meinen Tisch etwas unprofessionell, wenn ich ihn in einer Präsentation verwende.

Wenn ich die zusätzliche Zeile nicht DataFrame.set_index verwende, ist weg, aber ich numerischen Zeilenindizes bekommen, die ich nicht will:

enter image description here

Wenn ich to_html(index=False) verwende dann löse ich diese Probleme , aber die erste Spalte ist nicht fett:

import pandas as pd 
from IPython.display import HTML 

df = pd.DataFrame([['foo',1,3.0],['bar',2,2.9], 
        ['baz',4,2.85],['quux',3,2.82]], 
       columns=['name','order','gpa']) 
HTML(df.to_html(index=False)) 

enter image description here

Wenn ich will Kontrolle Styling, um die Namen fett zu machen, ich denke, ich könnte die neue Styler API über HTML(df.style.do_something_here().render()) verwenden, aber ich kann nicht herausfinden, wie die index=False Funktionalität zu erreichen.

Was ist ein Hacker zu tun? (neben dem HTML selbst)

Antwort

3

Ich stocherte in der source for Styler und fand es heraus; wenn Sie setzen df.index.names = [None] dann unterdrückt dies die „extra“ Reihe (zusammen mit dem Spaltenkopf, dass ich nicht wirklich kümmere sich um):

import pandas as pd 

df = pd.DataFrame([['foo',1,3.0],['bar',2,2.9], 
        ['baz',4,2.85],['quux',3,2.82]], 
       columns=['name','order','gpa']) 
df = df.set_index('name') 
df.index.names = [None] 
df 

enter image description here

+0

nicht wirklich sicher, was das bedeutet, aber. : / –

Verwandte Themen