我如何熊猫分组获得总和?

新手上路,请多包涵

我正在使用这个数据框:

 Fruit   Date      Name  Number
Apples  10/6/2016 Bob    7
Apples  10/6/2016 Bob    8
Apples  10/6/2016 Mike   9
Apples  10/7/2016 Steve 10
Apples  10/7/2016 Bob    1
Oranges 10/7/2016 Bob    2
Oranges 10/6/2016 Tom   15
Oranges 10/6/2016 Mike  57
Oranges 10/6/2016 Bob   65
Oranges 10/7/2016 Tony   1
Grapes  10/7/2016 Bob    1
Grapes  10/7/2016 Tom   87
Grapes  10/7/2016 Bob   22
Grapes  10/7/2016 Bob   12
Grapes  10/7/2016 Tony  15

我想通过 Name 然后通过 Fruit 来聚合它以获得 Fruit 每个 Name 的总数。例如:

 Bob,Apples,16

我尝试按 NameFruit 进行分组,但是如何获得 Fruit 的总数?

原文由 Trying_hard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 251
2 个回答

使用 GroupBy.sum

 df.groupby(['Fruit','Name']).sum()

Out[31]:
               Number
Fruit   Name
Apples  Bob        16
        Mike        9
        Steve      10
Grapes  Bob        35
        Tom        87
        Tony       15
Oranges Bob        67
        Mike       57
        Tom        15
        Tony        1

要指定要求和的列,请使用: df.groupby(['Name', 'Fruit'])['Number'].sum()

原文由 Steven G 发布,翻译遵循 CC BY-SA 4.0 许可协议

你也可以使用 agg 功能,

 df.groupby(['Name', 'Fruit'])['Number'].agg('sum')

原文由 Saurabh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏