数据分析Pandas专栏---第十一章<Pandas数据聚合与分组(1)>

前言:

数据聚合和分组操作是数据处理过程中不可或缺的一部分 。它们允许我们根据特定的条件对数据进行分组,并对每个组进行聚合计算。这对于统计分析、汇总数据以及生成报告和可视化非常有用。无论是市场营销数据分析、销售业绩评估还是金融数据建模,数据聚合和分组操作都起着关键的作用。

正文:

数据聚合操作

定义数据聚合

在数据分析中,聚合是指将多个数据元素合并为更高级别的结果表示 。数据聚合可以通过对数据集应用统计函数来实现,如计算平均值(mean)、求和(sum)、计数(count)等。这些函数可以轻松地应用于DataFrame或Series对象,让我们能够快速计算数据集的统计指标。聚合可以将数据量进行缩减,提取出数据集的关键特征,并为进一步分析提供更有意义的结果。

聚合操作与数据汇总的关系

数据聚合操作是数据汇总的一种方式。通过聚合操作,我们可以对数据集中的特定列或多列进行分组,并对每个分组应用聚合函数。这样,我们可以将原始数据转变为更有用的汇总信息,如计算每个分组的平均值、总和或计数

案例: 假设我们有一个销售数据集,其中包含了不同产品的销售记录。我们希望对该数据集进行分组和聚合操作,以了解不同产品类别的平均销售额、总销售额和销售数量。
python 复制代码
import pandas as pd

# 载入销售数据集
sales_data = pd.read_csv('sales_data.csv')

# 根据产品类别进行分组
grouped_sales = sales_data.groupby('产品类别')

# 计算平均销售额、总销售额和销售数量
avg_sales = grouped_sales['销售额'].mean()
total_sales = grouped_sales['销售额'].sum()
count_sales = grouped_sales['销售数量'].count()

# 打印结果
print("平均销售额:\n", avg_sales)
print("总销售额:\n", total_sales)
print("销售数量:\n", count_sales)

我们将销售数据集按照产品类别进行了分组,并计算了每个产品类别的平均销售额、总销售额和销售数量。通过这些聚合操作,我们可以更好地理解不同产品类别的销售情况。

数据分组操作

数据分组的概念和作用

在数据分析中,数据分组是将数据集按照特定的条件或列进行划分的过程。通过数据分组,我们可以对每个分组内的数据应用各种操作和聚合函数,以获得更具体和有针对性的结果。数据分组让我们能够更好地理解数据集中的不同子集,并揭示出数据的隐藏特征和关联性

groupby函数和语法

Pandas中的groupby函数是进行数据分组操作的核心工具。它可以根据指定的列名或条件将数据集划分为多个组。使用groupby函数时,我们可以使用链式操作进一步对分组后的数据进行聚合、过滤或变换。

分组操作的常用参数和方法

在进行数据分组时,Pandas的groupby函数提供了各种参数和方法来控制分组操作的行为和结果。常用的参数包括:

  • by:指定按照哪些列进行分组
  • as_index:是否将分组的列作为索引,默认为True
  • level:指定多级索引时用于分组的级别

常用的分组方法包括:

  • sum():计算分组后的总和
  • mean():计算分组后的平均值
  • count():计算分组后的计数
  • max():计算分组后的最大值
  • min():计算分组后的最小值

分组聚合操作实例

进行单列分组并应用特定聚合函数

假设我们有一个员工工资的数据集,包含员工姓名、部门和薪水信息。我们想要根据部门对薪水进行分组,并计算每个部门的平均薪水、最高薪水和最低薪水。

python 复制代码
import pandas as pd

# 载入数据集
salary_data = pd.read_csv('salary_data.csv')

# 根据部门分组并应用聚合函数
grouped_data = salary_data.groupby('部门')
avg_salary = grouped_data['薪水'].mean()
max_salary = grouped_data['薪水'].max()
min_salary = grouped_data['薪水'].min()

# 打印结果
print("部门平均薪水:\n", avg_salary)
print("部门最高薪水:\n", max_salary)
print("部门最低薪水:\n", min_salary)

多列分组操作和多个聚合函数的应用

继续以上述员工工资的数据集为例,我们想要根据部门和职位对薪水进行分组,并计算每个部门和职位的平均薪水和最低薪水。

python 复制代码
import pandas as pd

# 继续使用上述数据集
# 根据部门和职位分组并应用多个聚合函数
grouped_data = salary_data.groupby(['部门', '职位'])
agg_data = grouped_data['薪水'].agg(['mean', 'min'])

# 打印结果
print("部门和职位的平均薪水和最低薪水:\n", agg_data)

结果重命名和索引重置的技巧

在进行分组聚合操作时,我们可以使用rename和reset_index方法对最终结果进行重命名和索引重置,以使结果更易读和理解。例如,我们可以将计算得到的平均薪水和最低薪水分别重命名为"平均工资"和"最低工资",并将默认的分组索引恢复为普通的整数索引。

python 复制代码
import pandas as pd

# 继续使用上述数据集和代码
# 重命名结果并重置索引
agg_data.rename(columns={'mean': '平均工资', 'min': '最低工资'}, inplace=True)
agg_data.reset_index(inplace=True)

# 打印最终结果
print("重命名和重置索引后的结果:\n", agg_data)

总结:

通过使用groupby函数和各种聚合函数,我们可以根据特定条件将数据集分组,并对每个分组进行各种汇总和计算操作。

相关推荐
落魄君子2 小时前
GA-BP回归-遗传算法(Genetic Algorithm)和反向传播神经网络(Backpropagation Neural Network)
神经网络·数据挖掘·回归
martian6652 小时前
【人工智能数学基础】——深入详解贝叶斯理论:掌握贝叶斯定理及其在分类和预测中的应用
人工智能·数学·分类·数据挖掘·贝叶斯
終不似少年遊*3 小时前
美国加州房价数据分析01
人工智能·python·机器学习·数据挖掘·数据分析·回归算法
梦想画家7 小时前
DuckDB:pg_duckdb集成DuckDB和PostgreSQL实现高效数据分析
postgresql·数据分析·duckdb·pg_duckdb
終不似少年遊*9 小时前
美国加州房价数据分析02
人工智能·python·机器学习·数据挖掘·数据分析·回归算法
BJ_bafangonline10 小时前
SPSS上传数据有缺失怎么办?
数据分析
赵钰老师13 小时前
【R语言遥感技术】“R+遥感”的水环境综合评价方法
开发语言·数据分析·r语言
Lx35215 小时前
Pandas数据重命名:列名与索引为标题
后端·python·pandas
小白学大数据16 小时前
高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫
爬虫·数据分析·kotlin
audyxiao0011 天前
AI一周重要会议和活动概览
人工智能·计算机视觉·数据挖掘·多模态