如何标记Pandas DataFrames列和行?

时间:2016-05-24 15:01:28

标签: python pandas

我试图制作这样的数据框:

Table

这是我到目前为止所做的:

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

看起来像这样:

enter image description here

但这并不能创建父类别。如何将列标记为"实际天气"和行#34;预测"?

2 个答案:

答案 0 :(得分:3)

您想为索引和列创建多索引:

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

答案 1 :(得分:3)

如果您指的是列和索引轴的名称,则可以在这些上设置.name属性:

>>> 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