我有以下数据框 my_df :

team      member
--------------------
 A         Mary
 B         John
 C         Amy
 A         Dan
 B         Dave
 D         Paul
 B         Alex
 A         Mary
 D         Mary

我希望新数据帧 new_df 的新输出为:
team      members              number
--------------------------------------
 A       [Mary,Dan]              2
 B       [John,Dave,Alex]        3
 C       [Amy]                   1
 D       [Paul,Mary]             2

我想知道是否有任何现有的 Pandas 函数可以执行上述任务?谢谢!

最佳答案

使用 groupby
pd.concat

g = df.groupby('team').member
pd.concat([g.apply(list), g.count()], axis=1, keys=['members', 'number'])

agg
g = df.groupby('team').member
g.agg(dict(members=lambda x: list(x), number='count'))

                 members  number
team
A            [Mary, Dan]       2
B     [John, Dave, Alex]       3
C                  [Amy]       1
D                 [Paul]       1

关于python - pandas:聚合给定列的行并计算数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41581044/

10-14 19:08