前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >懂Excel轻松入门Python数据分析包pandas(二十三):环比

懂Excel轻松入门Python数据分析包pandas(二十三):环比

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

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

前言

如果你需要经常处理走势数据,那么本系列接下来2篇文章的知识点将非常实用。

这一节先讲解最简单的环比实现。

下一节,将利用此技巧,解决诸如"某城市一年最大连续没下雨天数"的问题。敬请关注!

Excel 中的实现方式直观简单

考虑如下的一份销量表:

- 现在需要求出环比差异(本月-上月)。

由于 Excel 是高度自由的表格数据,我们可以如下实现:

- 从 B列 复制下移粘贴到 C列

- 由于最后一行下移后超出了总行数,直接去掉

现在可以在 D列 写上简单的公式得到结果:

- 由于 C列 第一个值是空的,我填了一个 na 错误

稍微懂一点 Excel 的小伙伴都会说:"根本不需要 C列,直接用公式用B列上下相减就行了"

的确如此,这里特意用此方式,因为这过程在 pandas 中有一样的操作

pandas 中的数据位移

直接看看,pandas 中把销量列位移是怎么实现的:

- 行2:.shift() 方法实现下位移。

- 这步相当于 Excel 操作中的辅助列 C列

- 注意,shift 方法只是返回位移后的结果,并不影响 df 中的数据

此时同样简单即可获得结果:

- 为了让初学者看懂,我特意分成多行保存中间结果

- 行2:用变量 d_res 保存下移的销量

- 行3:用下移销量 减去 原销量。相当于 Excel 操作的 D列公式

- 行4:把计算结果写入原数据

> 实际上在 pandas 还有更便捷的实现,类似于 Excel 操作中直接写公式上下引用。

不过,实际工作中的数据没有这么简单,

比如说:

- 数据中有些月份数据是缺失的,怎么办?

- 数据中的是日期类型,我希望按年做环比

更多详细高级应用技巧,关注我的 pandas 专栏!

下面介绍其中一种简单应用。

多结合分组处理

实际情况是,我们拿到的数据是多个城市的月份销量:

此时我们需要注意2点:

- 按城市分组

- 保证每个城市内的数据是按月份排序

代码如下:

- 行3-5:每个分组的处理逻辑,内容很简单

- 行7:先按 城市、月份 做排序,接着分组

- 注意,你也可以在分组处理中对月份排序

总结

本文重点:

- Series.shift 方法,实现数据位移

- 位移技巧结合其他技巧,能做到很多难以想象的功能,本文只是简单列举了其中一种

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

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

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

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

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