简体   繁体   English

Pandas Pivot 表格格式(列格式)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM