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

2024-04-26 21:08:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的pivot表中,我想分离列表/元组中的元素,以垂直显示,并且不使用列表的[]括号

enter image description here

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

o

t

代码如下。谢谢

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='')

结果如下:


Tags: 元素df列表高度group空间itemlist
1条回答
网友
1楼 · 发布于 2024-04-26 21:08:43

您可以尝试以下方法:

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

相关问题 更多 >