大熊猫; 棘手的数据透视表

jra*_*amm 4 python pivot dataframe pandas

我有一个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
Run Code Online (Sandbox Code Playgroud)

而我的目标是达到这个目的:

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
Run Code Online (Sandbox Code Playgroud)

看起来这需要不止一个枢轴或者枢轴和groupby的组合,但我没有运气......

有任何想法吗?

beh*_*uri 6

>>> 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]
Run Code Online (Sandbox Code Playgroud)

如果您不希望MultiIndex如上所述,可以.reset_index在最后一个数据框上使用方法;