Как я могу перечислить компоненты списка по отдельности в сводной таблице? - PullRequest
0 голосов
/ 29 апреля 2019

В следующей сводной таблице я хотел бы отделить элемент в списке / кортеже, который будет отображаться вертикально и без скобок [] списка.

enter image description here

Таким образом, вместо того, чтобы отображать [o, t] в группе C / 2, он будет отображаться вертикально с строкой 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='')

вывод выглядит следующим образом:

1 Ответ

0 голосов
/ 29 апреля 2019

Вы можете попробовать это:

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
...