如何从三维表构建Pandas矩阵?

时间:2017-08-31 07:31:59

标签: python pandas numpy

我构建了一个3维的Pandas数据集,如下所示:

colors         b                 g                 r
categories Alpha  Beta Omega Alpha  Beta Omega Alpha Beta Omega
score       40.0  25.0   NaN  26.0  76.0  41.0  49.0  NaN  26.0

我的目标是从中构建矩阵*表,使用分数作为单元格值,并使用轴来表示颜色和类别,如下所示:

colors/categories Alpha Beta Omega
r                   75    0    0
b                   0     65   0
g                   41    0    2

如何使用Pandas构建类似的东西?

(*)我不是100%确定我想要实现的是否实际上被称为矩阵表,所以请随时纠正我的问题。颜色可以大于r / g / b,因此表格也不一定是正方形。

1 个答案:

答案 0 :(得分:2)

您可以使用stack进行重塑,然后在reset_index必要时使用score删除第一级,并将NaN替换为0并转换为int

df = df.stack(0).reset_index(level=0, drop=True).fillna(0).astype(int)
print (df)
categories  Alpha  Beta  Omega
colors                        
b              40    25      0
g              26    76     41
r              49     0     26