如何在数据透视表中单独列出列表的组件?

问题描述 投票:0回答:1

在下面的数据透视表中,我想将列表/元组中的元素分开,以便垂直显示,而不使用列表的[]括号。

enter image description here

因此,不是在C / 2组中显示[o,t]而是垂直显示B行具有更高的高度而不包括[],如下所示? (除了它们之间没有大的空间)

Ť

代码如下。谢谢。

import pandas as pd

item_list=["m","n","o","p","q","r", "s", "t", "u", "v"]
group_list=["A", "B", "B" ,"C", "D","E", "D", "B" ,"B", "D"]
rank_list=[1,1,2,3,5]*2

df = pd.DataFrame({"Items":item_list, "Group":group_list, "Rank":rank_list})
df.pivot_table(index="Group", columns="Rank", aggfunc=list,fill_value='')

输出如下:

python pandas dataframe pivot-table
1个回答
0
投票

你可以试试这个:

df['Items'].stack().apply(lambda x: pd.Series([i for i in x])).unstack().stack(0)

输出:

Rank       1    2    3    5
Group                      
A     0    m  NaN  NaN  NaN
B     0    n    o    u  NaN
      1  NaN    t  NaN  NaN
C     0  NaN  NaN    p  NaN
D     0    s  NaN  NaN    q
      1  NaN  NaN  NaN    v
E     0    r  NaN  NaN  NaN
© www.soinside.com 2019 - 2024. All rights reserved.