当前位置: 首页 > 知识库问答 >
问题:

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

田阳泽
2023-03-14

我正在使用这个数据帧:

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

我想通过<code>Name</code>和<code>Fruit</code〕来聚合,以获得每个<code>名称</code>的<code>Fruit<-code>总数。例如:

Bob,Apples,16

我尝试按Name水果分组,但如何获取水果的总数?

共有3个答案

华良平
2023-03-14

如果要保留原始列“水果”和“名称”,请使用 reset_index()。否则,水果名称将成为索引的一部分。

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

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

从其他答案中可以看出:

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

               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
公西俊才
2023-03-14

你也可以使用agg函数,

df.groupby(['Name', 'Fruit'])['Number'].agg('sum')
苍阳成
2023-03-14

使用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

要指定要求和的列,请使用下面的代码:< code>df.groupby(['Name ',' Fruit'])['Number']。sum()

 类似资料:
  • 我正在使用此数据框: 我想通过名称和水果将其聚合,得到每个名称的水果总数。 我试着按名字和水果分组,但如何得到水果的总数呢。

  • 问题内容: 如何获得系列中最常出现的物品? 考虑系列 返回值应该是 问题答案: 您可以使用并提取第一个值: 这不一定是低效率的。与往常一样,对您的数据进行测试以查看适合的数据。

  • 我有一个熊猫数据框,如下所示,具有多个列,并希望获得列的总数。 我的尝试: 我试图使用和获取列的总和: 这会导致以下错误: 预期产出 我预计产出如下: 或者,我希望编辑< code>df,在标题为< code>TOTAL的新行中包含总计:

  • 问题内容: 我有一个这样的数据框: 呼唤 将返回 现在,我想对列“ C”执行“相同”操作。因为该列包含字符串,所以sum()不起作用(尽管您可能认为它将字符串连接在一起)。我真正想看到的是每个组的字符串列表或一组字符串,即 我一直在尝试找到方法来做到这一点。 尽管Series.unique()(http://pandas.pydata.org/pandas- docs/stable/genic/p

  • 问题内容: 下面我有一个查询,将从用户代理表和IP地址链接表中获取网站的最常见用户代理: 有时它会告诉我一些类似的东西 我的问题是,是否有一种方法可以使既然左侧的数字代表一个整体的百分比,并且会随着时间而增长,那么我能否使用sql语句的一部分来显示每个组在整体中的百分比?这样一来,我可以不使用而做一些事情,说获得总行数的百分比,而不仅仅是行数? 问题答案: 是的你可以: 我删除了,因为它似乎没有意

  • 本文向大家介绍如何在MongoDB中汇总总和以获得总数?,包括了如何在MongoDB中汇总总和以获得总数?的使用技巧和注意事项,需要的朋友参考一下 要在MongoDB中汇总总和以获取总计数,可以使用$sum运算符。要了解上述概念,让我们使用文档创建一个集合- 在method的帮助下显示集合中的所有文档。查询如下- 以下是输出- 这是获取总数的查询。 情况1-查询如下- 以下是输出- 这是在Mong