gpt4 book ai didi

python - 在 Pandas GroupBy 中计算和连接整数

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:06 25 4
gpt4 key购买 nike

假设这是我的 df

   A   B   C
0 a 33 13
1 b 44 14
2 a 55 15
3 a 66 16
4 b 77 17
5 c 88 18

我试着得到这样的东西

   A      B         B     C
count list sum
0 a 3 33,55,66 44
1 b 2 44,77 31
2 c 1 88 81

有什么pythonic的方法可以做到吗?

这是我的代码,但不是pythonic

df.groupby('A').agg({'B': ["count", lambda x: ','.join(x.astype(str))], 'C':sum})

最佳答案

您可以将字典传递给 agg:

In [11]: df.groupby("A").agg({"B": ["count", list], "C": ["sum"]})
Out[11]:
B C
count list sum
A
a 3 [33, 55, 66] 44
b 2 [44, 77] 31
c 1 [88] 18

要添加逗号,我会使用一个函数:

In [21]: def list_(ls):
...: return ",".join(map(str, ls))
...:

In [22]: list_.__name__ = "list"

In [23]: df.groupby("A").agg({"B": ["count", list_], "C": ["sum"]})
Out[23]:
B C
count list sum
A
a 3 33,55,66 44
b 2 44,77 31
c 1 88 18

关于python - 在 Pandas GroupBy 中计算和连接整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55331252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com