计算并连接Pandas Group中的整数

时间:2019-03-25 04:25:26

标签: python pandas concatenation pandas-groupby

假设这是我的df

test_urllib test_urllib2 test_urllib2net
Makefile:958: recipe for target 'test' failed
make: *** [test] Error 1

然后我尝试得到这样的东西

   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

有什么Python方法可以做到吗?

这是我的代码,但不是pythonic

   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

1 个答案:

答案 0 :(得分:3)

您可以将字典传递给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