我有一个数据框,如下所示。它只有两列 Sector 和 Raised_By。
我的数据框:
Sector Raised_By
A Xavi
B Ramos
C Beckham
B Ronaldo
A Messi
A Messi
C Oven
B Ramos
C Ronaldo
A Messi
C Ronaldo
C Beckham
根据上面的数据框,我想准备如下所示的数据框。
预期输出:
Sector Total_Number_of_Times_Raised Number_unique_Raised_By Unique_Raised_By
A 4 2 ['Xavi', 'Messi']
B 3 2 ['Ramos', 'Ronaldo']
C 5 3 ['Beckham', 'Ronaldo', 'Oven']
我试过下面的代码
c = df.groupby(['Sector']).size().reset_index(name='Total_Number_of_Times_Raised').sort_values(['Total_Number_of_Times_Raised'],
ascending =False)
请您参考如下方法:
一个选项是 pivot_table指定不同的 aggfuncs
df.pivot_table(index=df.Sector, values='Raised_By', aggfunc=['count', 'nunique', set])
count nunique set
Raised_By Raised_By Raised_By
Sector
A 4 2 {Messi, Xavi}
B 3 2 {Ramos, Ronaldo}
C 5 3 {Oven, Ronaldo, Beckham}
