2 回答
TA贡献1797条经验 获得超6个赞
MultiIndex您可以在柱子上制作一个,然后将两层堆叠起来。
# Map color to importance
d = (df.max().rank(method='dense', ascending=False)-1).astype(int)
df.columns = pd.MultiIndex.from_arrays([df.columns, df.columns.map(d)],
names=['color', 'importance'])
#color Orange Green Blue
#importance 2 1 0
#0 0 2 1
#1 2 4 4
#2 1 3 10
df = df.rename_axis(index='index').stack([0,1]).to_frame('value').reset_index()
index color importance value
0 0 Blue 0 1.0
1 0 Green 1 2.0
2 0 Orange 2 0.0
3 1 Blue 0 4.0
4 1 Green 1 4.0
5 1 Orange 2 2.0
6 2 Blue 0 10.0
7 2 Green 1 3.0
8 2 Orange 2 1.0
TA贡献1725条经验 获得超7个赞
另一个选项建立在您拥有的熔化基础上,并稍后导出重要性列:
tidy["importance"] = tidy["color"].map(df.columns.to_list().index)
添加回答
举报