我有一个需要重塑/旋转的 Pandas 数据框。目前,如何做到这一点似乎超出了我的能力。数据框如下所示:
Ref Statistic Val1 Val2 Val3 Val4
0 Mean 0 1 2 3
0 Std 0.1 0.1 0.1 0.1
1 Mean 0 1 2 3
1 Std 0.1 0.1 0.1 0.1
2 Mean 0 1 2 3
2 Std 0.1 0.1 0.1 0.1
我的目标是:
Ref Values Mean Std
0 Val1 0 0.1
0 Val2 1 0.1
0 Val3 2 0.1
0 Val4 3 0.1
1 Val1 0 0.1
1 Val2 1 0.1
1 Val3 2 0.1
1 Val4 3 0.1
2 Val1 0 0.1
2 Val2 1 0.1
2 Val3 2 0.1
2 Val4 3 0.1
看起来这需要多个支点或支点和 groupby 的组合,但我没有运气......
有任何想法吗?
最佳答案
>>> df1 = pd.melt(df, value_vars=['Val1', 'Val2', 'Val3', 'Val4'],
... id_vars=['Statistic', 'Ref'], var_name='Values')
>>> df1.pivot_table(values='value', rows=['Ref', 'Values'], cols='Statistic')
Statistic Mean Std
Ref Values
0 Val1 0 0.1
Val2 1 0.1
Val3 2 0.1
Val4 3 0.1
1 Val1 0 0.1
Val2 1 0.1
Val3 2 0.1
Val4 3 0.1
2 Val1 0 0.1
Val2 1 0.1
Val3 2 0.1
Val4 3 0.1
[12 rows x 2 columns]
如果你不想像上面那样有
MultiIndex
,你可以在最后一个数据帧上使用 .reset_index
方法;关于python - Pandas ;棘手的数据透视表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22323697/