在下面的数据透视表中,我想将列表/元组中的元素分开,以便垂直显示,而不使用列表的[]括号。
因此,不是在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='')
输出如下:
你可以试试这个:
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