如何在Pandas中按组计算观察值

如何在Pandas中按组计算观察值

在真正的数据科学项目中,你会处理大量的数据,并反复尝试一些东西,所以为了提高效率,我们使用Groupby概念。Groupby概念真的很重要,因为它能够有效地聚合数据,无论是性能还是代码量都很宏大。Groupby主要指的是一个涉及以下一个或多个步骤的过程,它们是。

  • 分割。这是一个过程,我们通过对数据集施加一些条件,将数据分成若干组。
  • 应用。这是一个过程,我们将一个函数独立地应用于每一组。
  • 合并。这是一个过程,我们在应用groupby后将不同的数据集结合起来,并将结果纳入一个数据结构。

语法: groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)

参数 :

  • by:映射、函数、字符串或可迭代。
  • axis : int, default 0
  • level : 如果轴是一个多指标(分层的),按一个或多个特定的级别分组。
  • as_index : 对于聚合输出,返回以组标签为索引的对象。只与DataFrame输入有关。 as_index=False实际上是 “SQL风格 “的分组输出。
  • sort : 对组键进行排序。通过关闭这个功能可以获得更好的性能。注意这并不影响每组中观察值的顺序。groupby保留了每组中的行的顺序。
  • group_keys : 当调用apply时,将组键添加到索引中,以识别碎片。
  • 挤压:如果可能的话,降低返回类型的维度,否则返回一个一致的类型

返回: GroupBy对象

在这里,我们使用一个简单的虚拟数据框架,如下图所示。

如何在Pandas中按组计算观察值?

此外,我们还使用了一些方法来计算Pandas中各组的观察值,下面用例子来说明。

例子1:使用group.count(按一个变量计数)

在这个例子中,我们将使用group.count()方法来计算每个组中成员的总数。

# import libraries
import pandas as pd
  
#create pandas DataFrame
df = pd.DataFrame({'Name': ['Arun', 'Arun', 'Bhuvi', 'Bhuvi',
                            'Bhuvi', 'Chandan', 'Chandan'],
                     
                   'Department':['CSE', 'IT', 'CSE', 'CSE',
                                 'IT', 'IT', 'CSE'],
                     
                   'Funds': [1100, 800, 700, 600, 600, 500, 1200]})
  
# create a group using groupby
group = df.groupby("Department")
  
# count the observations
group.count()

输出:

如何在Pandas中按组计算观察值?

例子2:使用group.size(按多个变量计数)

在这个例子中,我们将使用group.size()方法来计算每个组中的条目/行数。

# import libraries
import pandas as pd
  
#create pandas DataFrame
df = pd.DataFrame({'Name': ['Arun', 'Arun', 'Bhuvi', 'Bhuvi', 
                            'Bhuvi', 'Chandan', 'Chandan'],
                     
                   'Department':['CSE', 'IT', 'CSE', 'CSE', 
                                 'IT', 'IT', 'CSE'],
                     
                   'Funds': [1100, 800, 700, 600, 600, 500, 1200]})
  
# create a group using groupby
group = df.groupby(['Name', 'Department'])
  
# size of group to count observations
group = group.size()
  
# make a column name 
group.reset_index(name='Observation')

输出 :

如何在Pandas中按组计算观察值?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程