python - Pandas :聚合给定列的行并计算数量

标签 python python-3.x pandas

我有以下数据框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/

相关文章:

mysql - 无法导入名称 'Datetime' python flask sqlalchemy

python-3.x - 将原始 Scapy 数据解码为人类可读

python - 如何迭代行以查找 pandas 中列的常量值

python - 运行两个 python 进程

python - python中大数的浮点除法

python - 如何在一列上执行 pandas groupby 操作,但将另一列保留在生成的数据框中

python - 根据 Pandas Python 中的分组列值执行条件过滤

python - 无法将字符串转换为十六进制

python - 向 gettext 询问有关 Python 中当前语言和翻译源的信息

python - Pandas 使用 If 语句逐行进行