2017-09-07 3 views
1

Ich habe einen Datenrahmen:Alias ​​für die Spalte in Pandas

df = pd.DataFrame({"by_week": list_1, "by_month": list_2}) 

Jetzt brauche ich eine HTML-Tabelle erhalten html = df.to_html() wo Spalten erzeugt werden, wie:

<tr> 
    <th></th> 
    <th>by_month</th> 
    <th>by_week</th> 
</tr> 

Aber ich bin für menschlichere suchen lesbares Kopfspalte wie:

<tr> 
    <th></th> 
    <th>Last 7 days</th> 
    <th>Last 30 days</th> 
</tr> 

ich habe zwei Optionen für die Lösung es: Option 1

html = html.replace("by_week", "Last 7 days").replace("by_month", "Last 30 days") 

Aber Code ist etwas chaotisch

Option 2

df = pd.DataFrame({"Last 7 days": list_1, "Last 30 days": list_2}) 

aber es ist schwer zu schreiben/Zugriff auf eine bestimmte Spalte jedes Mal.

also ... Existiert ein Alias ​​für Spalten?

Antwort

2

Aliase für Spaltennamen sind not supported yet.

Ich glaube, Sie Spalten von dict umbenennen:

list_1 = [1,2] 
list_2 = [5,7] 

d = {"by_week": "Last 7 days", "by_month": "Last 30 days"} 
df = pd.DataFrame({"by_week": list_1, "by_month": list_2}).rename(columns=d) 
print (df) 
    Last 30 days Last 7 days 
0    5   1 
1    7   2 

df = pd.DataFrame({"by_week": list_1, "by_month": list_2}).rename(columns=d).to_html() 
print (df) 
<table border="1" class="dataframe"> 
    <thead> 
    <tr style="text-align: right;"> 
     <th></th> 
     <th>Last 30 days</th> 
     <th>Last 7 days</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <th>0</th> 
     <td>5</td> 
     <td>1</td> 
    </tr> 
    <tr> 
     <th>1</th> 
     <td>7</td> 
     <td>2</td> 
    </tr> 
    </tbody> 
</table> 
0

Verwenden rename

df.rename(columns={"by_week": "Last 7 days", "by_month": "Last 30 days"}).to_html()