用Pandas进行分组和聚合

用Pandas进行分组和聚合

在这篇文章中,我们将看到使用pandas进行分组和聚合。分组和聚合将有助于使用各种函数轻松实现数据分析。这些方法将帮助我们对数据进行分组和汇总,使复杂的分析变得相对容易。

创建一个各科分数的样本数据集

# import module
import pandas as pd
  
# Creating our dataset
df = pd.DataFrame([[9, 4, 8, 9],
                   [8, 10, 7, 6],
                   [7, 6, 8, 5]],
                  columns=['Maths',  'English', 
                           'Science', 'History'])
  
# display dataset
print(df)

输出:

用Pandas进行分组和聚合

Pandas中的聚合

pandas中的聚合提供了各种函数,对我们的数据集进行数学或逻辑运算,并返回该函数的摘要。聚合可以用来获取数据集中各列的摘要,比如从数据集的某一列获取总和、最小值、最大值等。用于聚合的函数是agg(),参数是我们要执行的函数。

汇总中使用的一些函数是:。

函数描述:

  • sum() :计算列值的总和
  • min() :计算列值的最小值
  • max() :计算列值的最大值
  • mean() :计算列的平均数
  • size() :计算列的大小
  • describe() :产生描述性的统计数据
  • first() :计算组中的第一个值
  • last() :计算组内的最后一个值
  • count() :计算列值的数量
  • std() :列的标准偏差
  • var() :计算列的方差
  • sem() :列的平均数的标准误差

示例:

  • sum()函数用于计算每个值的总和。
df.sum()

输出:

用Pandas进行分组和聚合

  • describe()函数被用来获取我们的数据集的摘要
df.describe()

输出:

用Pandas进行分组和聚合

  • 我们使用agg()函数来计算数据集中每一列的总和、最小和最大。
df.agg(['sum', 'min', 'max'])

输出:

用Pandas进行分组和聚合

Pandas中的分组

分组是用来使用我们的数据集的一些标准对数据进行分组。它被用作分割-应用-合并的策略。

  • 根据一些标准将数据分成几组。
  • 将一个函数独立应用于每一组。
  • 将结果合并为一个数据结构。

示例s:

我们使用groupby()函数将数据按 “Maths “值分组。它返回对象作为结果。

df.groupby(by=['Maths'])

输出:

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000012581821388>

应用groupby()函数将数据按 “Maths “值分组。使用first()函数查看形成的组的结果。

a = df.groupby('Maths')
a.first()

输出:

用Pandas进行分组和聚合

首先根据 “数学 “进行分组,在每个小组内,我们根据 “科学 “进行分组。

b = df.groupby(['Maths', 'Science'])
b.first()

输出:

用Pandas进行分组和聚合

在一个数据集上的实现

这里我们使用的是钻石信息的数据集。

# import module
import numpy as np
import pandas as pd
  
# reading csv file
dataset = pd.read_csv("diamonds.csv")
  
# printing first 5 rows
print(dataset.head(5))

输出:

用Pandas进行分组和聚合

  • 我们通过使用cut进行分组,并得到所有列的总和。
dataset.groupby('cut').sum()

输出:

用Pandas进行分组和聚合

  • 在这里,我们使用切割和颜色进行分组,并获得所有其他组的最小值。
dataset.groupby(['cut', 'color']).agg('min')

输出:

用Pandas进行分组和聚合

  • 在这里,我们使用颜色进行分组,并获得价格组的总和、平均值、最小值等汇总值。
# dictionary having key as group name of price and
# value as list of aggregation function 
# we want to perform on group price
agg_functions = {
    'price':
    ['sum', 'mean', 'median', 'min', 'max', 'prod']
}
  
dataset.groupby(['color']).agg(agg_functions)

输出:

用Pandas进行分组和聚合

我们可以看到,在prod(积即乘法)一栏中,所有的数值都是inf,inf是数学上无限的数字计算结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程