Python 3.x 数据透视表格式(列格式)

Python 3.x 数据透视表格式(列格式),python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,下面是示例数据帧 test = pd.DataFrame({'min': [1, 2, 3,4,5], 'max': [1, 2, 3,4,5],'median': [1, 2, 3,4,5],'colors': ['red', 'white', 'blue','black','yellow'],'key': ['A', 'B', 'C','D','F']}) 应用透视表后,输出如下所示 test.pivot(index='key', columns='colors', values=['m

下面是示例数据帧

test = pd.DataFrame({'min': [1, 2, 3,4,5], 'max': [1, 2, 3,4,5],'median': [1, 2, 3,4,5],'colors': ['red', 'white', 'blue','black','yellow'],'key': ['A', 'B', 'C','D','F']})

应用透视表后,输出如下所示

test.pivot(index='key', columns='colors', values=['min','max','median'])

相反,我希望实现下面这样的目标,即在每种颜色下将度量分组为列

是否有任何方式,我格式的轴心以下,任何帮助将不胜感激


Swaplevel然后排序索引:

(test.pivot(index='key', columns='colors', values=['min','max','median'])
     .swaplevel(0,1, axis=1)
     .sort_index(axis=1)
)
另一种方法是使用
set_index
而不是
pivot
,然后正确地
stack/unstack

test.set_index(['colors','key']).stack().unstack(level=(0,-1))
输出:

colors   black            blue             red               white              yellow            
         max median  min  max median  min  max median  min   max median  min    max median  min
key                                                                                            
A        NaN    NaN  NaN  NaN    NaN  NaN  1.0    1.0  1.0   NaN    NaN  NaN    NaN    NaN  NaN
B        NaN    NaN  NaN  NaN    NaN  NaN  NaN    NaN  NaN   2.0    2.0  2.0    NaN    NaN  NaN
C        NaN    NaN  NaN  3.0    3.0  3.0  NaN    NaN  NaN   NaN    NaN  NaN    NaN    NaN  NaN
D        4.0    4.0  4.0  NaN    NaN  NaN  NaN    NaN  NaN   NaN    NaN  NaN    NaN    NaN  NaN
F        NaN    NaN  NaN  NaN    NaN  NaN  NaN    NaN  NaN   NaN    NaN  NaN    5.0    5.0  5.0

非常感谢你