我构建了一个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,因此表格也不一定是正方形。
答案 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