2016-05-24 11 views
1

Ich versuche, einen Datenrahmen wie diese zu machen:Wie kann ich Pandas DataFrames-Spalten und Zeilen beschriften?

Table

Dies ist, was ich bisher:

labels = ['Rain', 'No Rain'] 
pd.DataFrame([[27, 63],[7, 268]], columns=labels, index=labels) 

die wie folgt aussieht:

enter image description here

Aber das erstellt nicht die übergeordneten Kategorien. Wie kann ich die Spalten als "Aktuelles Wetter" und die Zeilen als "Prognose" bezeichnen?

+0

können Sie versuchen, einen Multiindex mit Index = pd.MultiIndex.from_tuples (Tupel) mit den Tupel zu erstellen (("Aktuelles Wetter", "Regen"), ("Aktuelles Wetter", "Kein Regen") und das gleiche für den Zeilenindex – lint

Antwort

3

Sie möchten einen Multi-Index für den Index und die Spalten erstellen:

In [17]: 
df = pd.DataFrame(data=[[27,63],[7,268]], columns = pd.MultiIndex.from_tuples([('Actual Weather','Rain'),('Actual Weather', 'No Rain')]), 
       index=pd.MultiIndex.from_tuples([('Forecast','Rain'),('Forecast','No Rain')])) 
df 

Out[17]: 
       Actual Weather   
          Rain No Rain 
Forecast Rain    27  63 
     No Rain    7  268 
3

Wenn Sie die Namen der Spalten und Index-Achsen bedeuten, Sie .name Eigenschaft auf diejenigen einstellen:

>>> labels = ['Rain', 'No Rain'] 
>>> df = pd.DataFrame([[27, 63],[7, 268]], columns=labels, index=labels) 
>>> df.columns.name = 'Actual Weather' 
>>> df.index.name = 'Forecast' 
>>> print(df) 
Actual Weather Rain No Rain 
Forecast      
Rain    27  63 
No Rain   7  268 
Verwandte Themen