Pandas Groupby和Sum
这是一个简单的概念,但它是一个非常有价值的技术,在数据科学中被广泛使用。它的帮助在于,我们可以:
- 计算每组的汇总统计数据
- 进行特定组别转换
- 做好数据的过滤工作
dataframe.groupby()涉及分割对象、应用函数和合并结果的组合。这可以用来对大量的数据进行分组,并对这些分组进行计算操作,如sum()。
Pandas dataframe.sum()函数返回所请求的轴的数值之和。如果输入的是索引轴,那么它将一列中的所有数值相加,并对所有列重复同样的操作,然后返回一个包含每列中所有数值之和的序列。
为Pandas groupby()和sum()创建DataFrame
# import required module
import pandas as pd
# assign data
ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils',
'Kings', 'kings', 'Kings', 'Kings',
'Riders', 'Royals', 'Royals', 'Riders'],
'Rank': [1, 2, 2, 3, 3, 4, 1, 1, 2, 4, 1, 2],
'Year': [2014, 2015, 2014, 2015, 2014, 2015, 2016,
2017, 2016, 2014, 2015, 2017],
'Points': [876, 789, 863, 673, 741, 812, 756, 788,
694, 701, 804, 690]}
# create dataframe
df = pd.DataFrame(ipl_data)
输出:
示例1:
在这个例子中,我们对Points列的数据进行分组,并计算DataFrame所有数字列的总和。
# use groupby() to compute sum
df.groupby(['Points']).sum()
输出:
示例2:
在这里,我们可以在多个列上应用一个组,并在每个组合组上计算出一个总和。
# use groupby() to generate sum
df.groupby(['Team', 'Year'])['Rank'].sum()
输出:
例子3:按groupby Keys排序。
在这个例子中,我们将数据按年份列分组,并计算DataFrame所有数字列的总和,同时将年份按升序排序。
# use groupby() to generate sum
df.groupby(['Year'], sort=True)['Rank'].sum()
输出: