[英]Pandas Pivot table formatting(columns formatting)
Here is the sample dataframe这是样品 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']})
After applying pivot table, the output looks like below.应用 pivot 表后,output 如下所示。
test.pivot(index='key', columns='colors', values=['min','max','median'])
Instead I would like to achieve like below where metrics are grouped under each color as columns.相反,我想实现如下所示,其中指标在每种颜色下分组为列。
Is there any way I format the pivot to below, any help would be greatly appreciated有什么方法可以将 pivot 格式化为下面,任何帮助将不胜感激
Swaplevel then sort index: Swaplevel 然后排序索引:
(test.pivot(index='key', columns='colors', values=['min','max','median'])
.swaplevel(0,1, axis=1)
.sort_index(axis=1)
)
Another way is to use set_index
instead of pivot
, then stack/unstack
properly:另一种方法是使用set_index
而不是pivot
,然后正确stack/unstack
取消堆叠:
test.set_index(['colors','key']).stack().unstack(level=(0,-1))
Output: Output:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.