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
非常感谢你