我有一个类似的数据框:
country indicator y1 y2 y3 y4
0 abc a 0.1 0.1 0.1 0.1
1 abc b 0.1 0.2 0.4 0.1
2 wed a 0.1 0.1 0.1 0.1
3 wed b 0.7 0.1 0.6 0.1
我需要类似的东西:
country y a b
0 abc y1 0.1 0.1
y2 0.1 0.2
y3 0.1 0.1
y4 0.7 0.1
1 wed y1 0.1 0.1
y2 0.1 0.2
y3 0.1 0.1
y4 0.7 0.1
解决方案指向转置,但我似乎无法根据需要完全转换它们。
答案 0 :(得分:4)
df.set_index(['country','indicator']).stack().unstack(1)
输出:
indicator a b
country
abc y1 0.1 0.1
y2 0.1 0.2
y3 0.1 0.4
y4 0.1 0.1
wed y1 0.1 0.7
y2 0.1 0.1
y3 0.1 0.6
y4 0.1 0.1