Pandas Groupby:在Python中对数据进行汇总、聚合和分组

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

GroupBy是一个相当简单的概念。我们可以创建一个类别的分组,并对这些类别应用一个函数。这是一个简单的概念,但它是一个非常有价值的技术,在数据科学中被广泛使用。在真正的数据科学项目中,你会处理大量的数据,并反复尝试一些东西,所以为了提高效率,我们使用Groupby概念。Groupby概念真的很重要,因为它能够有效地汇总、聚合和分组数据。

汇总

总结包括计算、描述数据框中的所有数据。我们可以使用describe()方法对数据框中的数据进行总结。该方法用于从数据框中获取最小、最大、总和、计数值以及该特定列的数据类型。

  • describe()。这个方法阐述了数据的类型和它的属性。

语法: dataframe_name.describe()

  • unique()。该方法用于从给定的列中获取所有的唯一值。

语法:dataframe[‘column_name].unique()

  • nunique()。这个方法与unique类似,但它将返回唯一值的数量。

语法:dataframe_name[‘column_name].nunique()

  • info()。该命令用于获取数据类型和列的信息

语法:dataframe.info()

  • 列。该命令用于显示数据框中的所有列名。

语法:dataframe.columns

示例:

在这个例子中,我们要分析的是学生的分数数据。

# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
# display dataframe
dataframe

输出:

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

# describing the data frame
print(dataframe.describe())
 
print("-----------------------------")
# finding unique values
print(dataframe['Maths_marks'].unique())
 
print("-----------------------------")
# counting unique values
print(dataframe['Maths_marks'].nunique())
 
print("-----------------------------")
# display the columns in the data frame
print(dataframe.columns)
 
print("-----------------------------")
# information about dataframe
print(dataframe.info())

输出:

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

聚合

聚合用于获得数据框架中所有列或数据框架中特定列的平均值、平均数、方差和标准差。

  • sum()。它返回数据框的总和

语法:dataframe[‘column].sum()

  • mean()。它返回数据框中特定列的平均值

语法:dataframe[‘column].mean()

  • std()。它返回该列的标准偏差。

语法:dataframe[‘column].std()

  • var()。它返回该列的方差

dataframe[‘column’].var()

  • min()。它返回列中的最小值

语法:dataframe[‘column’].min()

  • max()。它返回列中的最大值

语法:dataframe[‘column’].max()

示例:

在下面的程序中,我们将汇总数据。

# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
# display dataframe
dataframe

输出:

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

# getting all minimum values from
# all columns in a dataframe
print(dataframe.min())
print("-----------------------------------------")
 
# minimum value from a particular
# column in a data frame
print(dataframe['Maths_marks'].min())
print("-----------------------------------------")
 
# computing maximum values
print(dataframe.max())
print("-----------------------------------------")
 
# computing sum
print(dataframe.sum())
print("-----------------------------------------")
 
# finding count
print(dataframe.count())
print("-----------------------------------------")
 
 
# computing standard deviation
print(dataframe.std())
print("-----------------------------------------")
 
# computing variance
print(dataframe.var())

输出:

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

分组

它通过使用groupby()方法对数据框架中的一个或多个列进行分组。Groupby主要是指涉及以下一个或多个步骤的过程,它们是:。

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

示例 1:

# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
 
# group by name
print(dataframe.groupby('name').first())
 
print("---------------------------------")
# group by name with social_marks sum
print(dataframe.groupby('name')['social_marks'].sum())
print("---------------------------------")
 
# group by name with maths_marks count
print(dataframe.groupby('name')['Maths_marks'].count())
print("---------------------------------")
 
# group by name with maths_marks
print(dataframe.groupby('name')['Maths_marks'])

输出:

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

示例 2:

# importing pandas as pd for using data frame
import pandas as pd
 
# creating dataframe with student details
dataframe = pd.DataFrame({'id': [7058, 4511, 7014, 7033],
                          'name': ['sravan', 'manoj', 'aditya', 'bhanu'],
                          'Maths_marks': [99, 97, 88, 90],
                          'Chemistry_marks': [89, 99, 99, 90],
                          'telugu_marks': [99, 97, 88, 80],
                          'hindi_marks': [99, 97, 56, 67],
                          'social_marks': [79, 97, 78, 90], })
 
# group by name
print(dataframe.groupby('name').first())
 
print("------------------------")
# group by name with social_marks sum
print(dataframe.groupby('name')['social_marks'].sum())
print("------------------------")
# group by name with maths_marks count
print(dataframe.groupby('name')['Maths_marks'].count())

输出:

Pandas Groupby:在Python中对数据进行汇总、聚合和分组

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程