前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >懂Excel就能轻松入门Python数据分析包pandas(四):任意分组成绩条

懂Excel就能轻松入门Python数据分析包pandas(四):任意分组成绩条

作者头像
咋咋
发布2021-09-01 14:56:12
6600
发布2021-09-01 14:56:12
举报
文章被收录于专栏:数据大宇宙数据大宇宙

> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas

前言

上一节我们介绍了在 pandas 中怎么制作诸如成绩条的技巧,不过那是按照 Excel 解决思路进行的,然而,面对复杂多变的需求,那种方式会有所限制。本节将介绍一种非常灵活并且思路更清晰的解决方案。

案例

继续沿用成绩单数据:

我们希望把每位学生的成绩单独列出来,也就是一行记录成为一个小表:

有遍历思路,但不需要遍历代码

上一节我们已经介绍过怎么利用不存在的索引批量生成空行。但是,这样子还不够通用灵活。比如,我们希望按班别制作成绩表,此方法显然不能做到。

使用 pandas 最大的好处就是,你可以根据思路编写直白的代码。按"班别",不就是"分组"吗。如下:

  • - 调用 df.groupby() ,即可按任意维度分组数据
  • - pandas 的分组比许多主流数据库的 Sql 更加灵活,他为每组划入该组的子集,让我们可以灵活操作,并且还可以每组返回多行记录
  • - 调用 apply ,即可在里面编写每组的处理逻辑
  • - apply 里面的逻辑非常直白。 在顶部添加标题,在末尾添加空行

问题来了,你说这方法灵活,可以对应任意维度分组,但这个方法怎么得到最初的需求——每行一个小表格呢?

对应最初的需求,其实就是按每行分组。那么 DataFrame 里面什么是每行不一样的?没错,就是行索引(index)。如下:

更多的灵活性

这个方式可以制作出灵活多变的小表格,比如,按班别划分,每个小表格最后添加汇总行。代码如下:

  • - 在之前的基础上加入汇总逻辑
  • - 通过 df.append ,即可轻松把汇总行添加到 DataFrame 的末尾处

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档