📜  Pandas Groupby 和 Sum

📅  最后修改于: 2022-05-13 01:55:35.770000             🧑  作者: Mango

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()

输出: