Pandas 数据帧groupby()方法

原文:https://www.studytonight.com/pandas/pandas-dataframe-groupby-method

在本教程中,我们将学习 Python Pandas 内置方法DataFrame.groupby().``groupby()操作包括拆分对象、应用方法和组合结果的一些组合。当我们对数据帧中的某些组进行一些计算或统计时,这种方法很有帮助。它返回一个由关于组的信息组成的groupby object

下图显示了DataFrame.groupby()方法的语法。

句法

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)

因素

by: 映射、方法、标签或标签列表。它用于确定 groupby 的组。如果 by 是一个方法,则对对象索引的每个值调用它。如果通过了系列系列,系列或系列值将用于确定组。如果通过了一个数组,这些值将按原样用于确定组。

轴:如果为 0 或“索引”,则对每列应用一种方法。如果为 1 或“列”,则对每行应用一个方法。默认轴值为 0 或“索引”。

级别: int,级别名称或序列,默认无。如果轴是多索引的,它将按特定级别分组。

示例:Pandas 中的 groupby()方法

以下示例显示了 groupby()方法如何对数据帧中的对象进行分组或拆分。

# import the pandas library
import pandas as pd  
data = {'Name': ['Avinash', 'Amrutha', 'Chetana', 'Kartik','Nikhil'],'Percentage': [72, 98, 81, 87,85],'Course': ['Arts','B.Com','M.Tech','B.SC','BE']}  
df = pd.DataFrame(data)  
print(df)
grp=df.groupby('Course')
print(grp)
print(grp.groups)

一旦我们运行该程序,我们将获得以下输出。

名称百分比课程 0 Avinash 72 Arts 1 Amrutha 98 B.Com 2 Chetana 81M . Tech 3 Kartik 87 B . SC 4 Nikhil 85 BE

{【Arts】:【0】,【B . Com】:【1】,【B . SC】:【3】,【4】

示例:使用groupby()方法对数据帧对象进行分组

在本例中,我们使用 Pandas 数据帧的groupby()方法对多列进行分组。

# import the pandas library
import pandas as pd  
data = {'Name': ['Avinash', 'Amrutha', 'Chetana', 'Kartik','Nikhil'],'Percentage': [72, 98, 81, 87,85],'Course': ['Arts','B.Com','M.Tech','B.SC','BE']}  
df = pd.DataFrame(data)  
print(df)
grp=df.groupby(['Course','Name'])
print(grp)
print(grp.groups)

一旦我们运行该程序,我们将获得以下输出。

名称百分比课程 0 Avinash 72 Arts 1 Amrutha 98 B.Com 2 Chetana 81M . Tech 3 Kartik 87 B . SC 4 Nikhil 85 BE

{(“Arts”,“Avinash”):[0],(“B.Com”,“Amrutha”):[1]

示例:使用 get_group()方法选择单个组

我们可以使用 get_group()方法选择单个组。见下面的例子。

# import the pandas library
import pandas as pd  
data = {'Name': ['Avinash','Avinash', 'Amrutha', 'Chetana', 'Kartik','Nikhil'],  
   'Percentage': [72, 98, 81, 87,85,98],  
   'Course': ['Arts','B.Com','M.Tech','B.SC','BE','M.Tech']}  
df = pd.DataFrame(data)  
print("--------DATAFRAME------")
print(df)
grp=df.groupby('Percentage')
print("----Selecting single group-----")
print(grp.get_group(98))

一旦我们运行该程序,我们将获得以下输出。

  • DATAFRAME - 命名百分比课程 0 阿维纳什 72 艺术 1 阿维纳什 98 B.Com 2 阿姆鲁萨 81 M.Tech 3 切塔纳 87 B.SC 4 卡蒂克 85 BE 5 尼基尔 98 M.Tech -选择单组- 命名百分比课程 1 阿维纳什 98 B.Com 5 尼基尔 98 M.Tech

示例:对groupby()方法执行聚合操作

一旦创建了groupby()对象,我们就可以对分组数据进行多次aggregation 操作。见下面的例子。

# import the numpy and pandas library
import numpy as np
import pandas as pd  
data = {'Name': ['Avinash','Avinash', 'Amrutha', 'Chetana', 'Kartik','Nikhil'],  
   'Percentage': [72, 98, 81, 87,85,98],  
   'Course': ['Arts','B.Com','M.Tech','B.SC','BE','M.Tech']}  
df = pd.DataFrame(data)  
grp=df.groupby('Course')
print("----Performing aggregation operation on groupby object-----")
print(grp['Percentage'].agg(np.mean))

一旦我们运行该程序,我们将获得以下输出。

-对分组对象执行聚合操作- 课程 艺术 72.0 B.Com 98.0 B . SC 87.0 BE 85.0 M . Tech 89.5 名称:百分比,数据类型:float64

结论:

在本教程中,我们学习了 Pandas 内置法groupby() 法。我们理解语法、参数,并且通过在 DataFrame 上应用此方法来理解 groupby()方法的工作原理,我们有不同的示例。