首页 >后端开发 >Python教程 >Pandas GroupBy 如何计算每个名称的水果总数?

Pandas GroupBy 如何计算每个名称的水果总数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-23 06:02:19149浏览

How Can Pandas GroupBy Calculate Total Fruits per Name?

Pandas Group-By:按名称确定水果总数

在数据操作场景中,经常需要根据指定条件聚合数据。 Pandas 的 groupby 方法为数据分组和执行各种聚合提供了强大的解决方案。本文将演示如何使用 groupby 计算给定数据集中每个名称的水果总和。

问题陈述:

给定一个包含表示 Fruit 的列的数据框、日期、姓名和数字:

import pandas as pd

df = pd.DataFrame({
    'Fruit': ['Apples', 'Apples', 'Apples', 'Apples', 'Apples', 'Oranges', 'Oranges', 'Oranges', 'Oranges', 'Oranges', 'Grapes', 'Grapes', 'Grapes', 'Grapes', 'Grapes'],
    'Date': ['10/6/2016', '10/6/2016', '10/6/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/6/2016', '10/6/2016', '10/6/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/7/2016', '10/7/2016'],
    'Name': ['Bob', 'Bob', 'Mike', 'Steve', 'Bob', 'Bob', 'Tom', 'Mike', 'Bob', 'Tony', 'Bob', 'Tom', 'Bob', 'Bob', 'Tony'],
    'Number': [7, 8, 9, 10, 1, 2, 15, 57, 65, 1, 1, 87, 22, 12, 15]
})

解决方案:

要计算每个名称的水果总和,请按照以下步骤操作:

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

此操作将按“Fruit”和“Name”列对数据进行分组,并通过求和来聚合“Number”列。输出将是一个数据框,其中包含“水果”和“名称”每种组合的水果总数。

结果:

结果数据框将类似于以下:

               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

如果需要指定特定列进行聚合,可以使用以下语法使用:

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

通过使用 Pandas 的 groupby 和 sum 函数,我们可以有效地对数据进行分组和聚合,从而从大型数据集中获得有意义的见解,使其成为数据探索和分析的强大工具。

以上是Pandas GroupBy 如何计算每个名称的水果总数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn