在数据分析中,数据分组与聚合是常用的操作,能够帮助我们从大量数据中提取出有用的信息.我们讨论了描述性统计,了解了如何通过均值、方差等统计量概述数据的特征.而在本篇中,我们将学习如何对数据进行分组和聚合,以便进行更深入的分析.最后,我们将在后续的章节中使用这些分析结果进行数据可视化.
数据分组的概念
数据分组是将数据集按照某些特征进行划分的过程.Pandas
库中的groupby()
函数可以帮助我们轻松实现这一点.使用groupby()
后,我们可以对每个组进行聚合、转换或过滤操作.
示例案例
我们将使用一个简单的假设数据集,包含学生的考试成绩.数据集如下:
学生 | 科目 | 分数 |
---|---|---|
A | 数学 | 85 |
A | 英语 | 78 |
B | 数学 | 92 |
B | 英语 | 88 |
C | 数学 | 70 |
C | 英语 | 60 |
首先,我们通过Pandas
将数据集导入:
import pandas as pd data = { '学生': ['A', 'A', 'B', 'B', 'C', 'C'], '科目': ['数学', '英语', '数学', '英语', '数学', '英语'], '分数': [85, 78, 92, 88, 70, 60] } df = pd.DataFrame(data) print(df)
数据分组与聚合
通过groupby()
函数,我们可以按学生
列对数据进行分组,并计算每个学生的平均分数:
grouped = df.groupby('学生')['分数'].mean().reset_index() print(grouped)
结果解释
输出的grouped
数据框显示了每个学生的平均分数:
学生 | 分数 |
---|---|
A | 81.5 |
B | 90.0 |
C | 65.0 |
在上面的示例中,我们使用mean()
函数进行平均值聚合,但Pandas
提供了多种聚合函数,包括 sum()
、count()
、min()
、max()
等等.
多重聚合
我们还可以对同一列使用多个聚合函数.例如,我们希望知道每位学生的分数总和和平均值,可以使用agg()
方法:
agg_results = df.groupby('学生')['分数'].agg(['sum', 'mean']).reset_index() print(agg_results)
这将返回一张数据框,其中包含每个学生的分数总和和平均分:
学生 | sum | mean |
---|---|---|
A | 163 | 81.5 |
B | 180 | 90.0 |
C | 130 | 65.0 |
使用pivot_table()
进行数据透视
除了groupby()
之外,Pandas
还提供了pivot_table()
函数,能够方便地处理数据透视问题.假设我们想要查看每个科目每个学生的平均分数:
pivot_table = df.pivot_table(values='分数', index='学生', columns='科目', aggfunc='mean').reset_index()
print(pivot_table)
结果解释
输出结果为:
学生 | 数学 | 英语 |
---|---|---|
A | 85 | 78 |
B | 92 | 88 |
C | 70 | 60 |
在这里,我们利用pivot_table()
创建了一张新的数据框,显示了每位学生在不同科目的分数.
小结
本篇文章中,我们学习了数据分组和聚合的基本操作.通过使用groupby()
函数和pivot_table()
函数,我们能够对数据进行灵活的分组与汇总,提取出有意义的信息.
关于Python技能储备!
如果你是准备学习Python或者正在学习(想通过Python兼职),下面这些你应该能用得上:
【点击这里】领取!
包括:激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
① Python所有方向的学习路线图
,清楚各个方向要学什么东西
② 100多节Python课程视频
,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例
,学习不再是只会理论
④ 华为出品独家Python漫画教程
,手机也能学习
⑤ 历年互联网企业Python面试真题
,复习时非常方便****
以上就是本次分享的全部内容。我们下期见~