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中文网其他相关文章!