Pandas Groupby 和 Sum
Pandas是一个建立在NumPy库之上的开源库。它是一个Python包,提供用于处理数值数据和时间序列的各种数据结构和操作。它主要用于更容易地导入和分析数据。 Pandas速度快,为用户提供高性能和生产力。
Groupby是一个非常简单的概念。我们可以创建一组类别并将函数应用于这些类别。这是一个简单的概念,但它是一种非常有价值的技术,广泛用于数据科学。从某种意义上说,我们可以:
- 计算每个组的汇总统计信息
- 执行特定于组的转换
- 做数据过滤
groupby()涉及拆分对象、应用函数和组合结果的组合。这可用于对大量数据进行分组,并对这些组进行计算操作,例如sum() 。
下面是一些实现在pandas模块中使用groupby().sum()的示例:
示例 1:
Python3
# import required module
import pandas as pd
# create dataframe
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon', 'Parrot', 'Parrot'],
'Max Speed': [380., 370., 24., 26.]})
# use groupby() to compute sum
df.groupby(['Animal']).sum()
Python3
# import required module
import pandas as pd
# assign list
l = [[100, 200, 300], [10, None, 40],
[20, 10, 30], [100, 200, 200]]
# create dataframe
df = pd.DataFrame(l, columns=["a", "b", "c"])
# use groupby() to generate sum
df.groupby(by=["b"]).sum()
Python3
# 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)
# use groupby() to generate sum
df.groupby(['Team']).sum()
输出
示例 2:
蟒蛇3
# import required module
import pandas as pd
# assign list
l = [[100, 200, 300], [10, None, 40],
[20, 10, 30], [100, 200, 200]]
# create dataframe
df = pd.DataFrame(l, columns=["a", "b", "c"])
# use groupby() to generate sum
df.groupby(by=["b"]).sum()
输出:
示例 3:
蟒蛇3
# 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)
# use groupby() to generate sum
df.groupby(['Team']).sum()
输出: