在Pandas DataFrame中命名列和行的组

时间:2019-11-11 21:19:23

标签: python pandas dataframe

我想给我的Pandas DataFrame中的列和行组命名,以获得与合并的Excel表相同的结果:

enter image description here

但是,我找不到像显示的那样为列/行的组赋予总体名称的任何方法。

我尝试将表包装成数组,但数据框不显示:

labels = ['a', 'b', 'c']
df = pd.DataFrame(np.ones((3,3)), index=labels, columns=labels)
labeledRowsCols = pd.DataFrame([df, df])
labeledRowsCols = pd.DataFrame(labeledRowsCols.T, index=['actual'], columns=['predicted 1', 'predicted 2'])
print(labeledRowsCols)
         predicted 1  predicted 2
 actual          NaN          NaN

1 个答案:

答案 0 :(得分:2)

您可以为行和列设置层次结构索引。

import pandas as pd

df = pd.DataFrame([[3,1,0,3,1,0],[0,3,0,0,3,0],[2,1,3,2,1,3]])

col_ix = pd.MultiIndex.from_product([['Predicted: Set 1', 'Predicted: Set 2'], list('abc')]) 
row_ix = pd.MultiIndex.from_product([['True label'], list('abc')])
df = df.set_index(row_ix)
df.columns = col_ix

df
# returns:
             Predicted: Set 1       Predicted: Set 2
                      a  b  c                a  b  c
True label a          3  1  0                3  1  0
           b          0  3  0                0  3  0
           c          2  1  3                2  1  3

将其导出到Excel应该像示例中那样具有合并的单元格。