认识环比增长率

很多企业比较注重自己的业务增长情况,时常会需要计算同比增长率和环比增长率。从上学的时候就有很多小伙伴搞不清楚这两个增长率之间的区别,这里简单直白的解释一下:

同比增长率从名字上就比较容易理解,指的是同期相比增长情况如何,比如今年一季度和去年一季度相比业务增长情况就可以用同比增长率来衡量,具体的计算公式为(今年一季度数据 - 去年一季度数据)/去年一季度数据。这里的季度只是举例用的,月份,周甚至天都可以作周期;

环比增长率的名字可能没有那么直观,它指的是这一个周期与上一个周期相比增长情况如何,比如第三季度和第二季度相比,业务增长情况就可以用环比增长率来衡量,具体计算公式为(第二季度数据 - 第一季度数据)/第一季度数据。当然这里的季度也只是举例用的,月份,周甚至天也都可以作周期。

根据具体表格情况计算环比增长率

我们不能确保每次拿到的数据都是类似的格式,对不同格式的数据在计算环比增长率的时候,会有一些小差别。

计算环比增长率情况一

首先看一下数据集长什么样子:

这是一种形式的表格,不同的年份,不同产品的销售额,对这样一种形式的数据计算环比增长率,是比较简单的一种形式,不需要提前对数据做过多的整理。

这里需要注意的是,我们希望能够保留年份信息,而用来计算的函数会把表格中所有数值型数据都进行环比运算,所以需要提前将年份信息转化成索引:

df1 = df.set_index("year")  #为了不改变原数据,将充值索引后的数据赋值给df1
df1  #查看修改索引后的数据集

修改索引后的表可以直接进行计算了:

df1.pct_change() #pct_change()方法计算当前元素与先前元素之间的百分比变化

输出结果:

这样计算的就是每一年和前一年相比的一个环比增长率,当然实际工作中一般不会保留这么多位小数,需要处理一下:

round(df1.pct_change(),4) #保留四位小数,由于增长率一般是百分数,所以这里保留4位小数

输出结果:

这样基本就是常见的环比增长率了。

计算环比增长率情况二

来看另一种样子的数据集(前十行):

这一种数据集明显比上一个数据集复杂了一点,而且这是整个数据集的前十行,下边我们简单探索下这个数据集:

首先一目了然,一共有三列,分别是产品ID,年份,销售金额;

然后需要探索一共有多少个产品ID,即一共有几种产品,还有一共是几年的数据:

data.ID.unique() #产看有几种产品ID

输出结果:

array(['001', '002', '003', '004', '005', '006'], dtype=object)

一共有6种产品

data.year.unique() #查看一共有几年数据

输出结果:

array(['2016', '2017', '2018', '2019'], dtype=object)

一共有4年的数据。

那么这种数据要怎样计算环比增长率呢?

有两种方法,一种是将原数据集转化成第一种数据集情况的样子,第二种是不改变原数据集计算环比增长率

先看方法一

通过数据透视的方法,将原数据进行加工:

data1 = data.pivot(index = "ID",columns="year",values="amount" )
data1 #为了不改变原数据,将数据透视后的结果赋值给data1

输出结果:

这里的行索引和列名可以进行互换,在data.pivot()的参数中进行设置就可以,虽然和第一种情况类似,但是仔细观察又发现了不同,第一种情况数据集的行索引是年份,这份数据中行索引是产品ID,其实这个是没有影响的,计算环比增长率的方法中有参数可以解决这种情况:

data1.pct_change(axis='columns') #只需要设置一下轴信息就可以改变运算方向

输出结果:

横向排列的就是每一个产品每一年的环比增长率,接下来,看另一种不对数据进行处理的方法。

再看方法二

由于一共是四年数据,规律明显,所以运用循环的方法计算环比增长率:

s = pd.Series() #新建一个空series用来放置计算结果
for i in data["ID"].unique(): #行索引是产品ID,所以有多少种商品,就循环多少次data_new = data[data["ID"]==i] #将相同产品的数据提取出来s = pd.concat([s,data_new["amount"].pct_change()]) #计算一种产品的环比增长率,并价格计算出的记过拼接到series中
s #查看最终结果

输出结果:

0          NaN
1     2.905255
2    -0.862439
3     3.879033
4          NaN
5     0.822258
6     2.159562
7    -0.846784
8          NaN
9    -0.688350
10   -0.134390
11    0.761261
12         NaN
13   -0.508871
14    2.211635
15   -0.288144
16         NaN
17   -0.089566
18    0.636688
19   -0.262344
20         NaN
21    0.795015
22    0.168730
23    0.421813
dtype: float64

得出这个结果后,可以把结果作为一个新列添加到原表当中,方便对比查看:

data["growth rate"]=round(s,4)
data.head(10) #由于数据集比较长,只查看前十行

输出结果:

另一个常用参数periods

官方文档中对这个参数的解释是这样的:形成百分比变化所需的时间。用直白的话解释就是进行环比运算的周期,比如上边所有的计算都是下一个周期和上一个周期进行的环比增长,也可计算诸如第三期与第一期相比的环比增长,只需要设置periods=2,就可以实现这样的需求,以下是原数据:

df1.pct_change(periods=2)#用第一个数据集为例,查看这个参数的效果

输出结果:

关于上述计算的所有结果,感兴趣的童鞋可以按照文章开头的公式手工计算一下,看下和pct_change()计算的结果都是一样的哦。

如何计算环比增长率是不是已经没有什么问题啦?

python列表如何求增长率_python如何计算环比增长率相关推荐

  1. python如何计算环比增长率

    CDA数据分析师 出品 认识环比增长率 很多企业比较注重自己的业务增长情况,时常会需要计算同比增长率和环比增长率.从上学的时候就有很多小伙伴搞不清楚这两个增长率之间的区别,这里简单直白的解释一下: 同 ...

  2. python读取csv求平均数_python列表切片读取csv数据计算导购客单价.py

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. """ python列表切片读取csv数据计算导购客单价.p ...

  3. python列表解析式如何使用_python列表推导式操作解析

    python列表推导式操作解析 这篇文章主要介绍了python列表推导式操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 基本格式 ​[表达式 ...

  4. python列表的实现原理_Python列表对象实现原理

    Python 列表对象实现原理 Python 中的列表基于 PyListObject 实现,列表支持元 素的插入.删除.更新操作,因此 PyListObject 是一个变长 对象(列表的长度随着元素的 ...

  5. python列表中的冒号_python 列表中[ ]中冒号‘:’的作用

    中括号[ ]:用于定义列表或引用列表.数组.字符串及元组中元素位置 list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, ...

  6. python列表删除指定字典_Python:从列表中删除字典

    thelist[:] = [d for d in thelist if d.get('id') != 2] 编辑:由于有人对这段代码的表现有所怀疑(有些是基于误解Python的性能特征,有些则假设超出 ...

  7. python列表常用操作函数_Python入门——列表常用操作

    Python列表常用操作 准备 控制台输入ipython parallels@parallels-vm:~$ ipythonPython 2.7.12 (default, Dec 4 2017, 14 ...

  8. python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结

    下面列出列表常用的方法操作列表以及小例子: 1.  Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...

  9. python列表有哪些操作_python列表的基本操作有哪些

    python列表的基本操作有:1.创建列表,只要把逗号分隔的不同的数据项使用方括号括起来:2.添加新的元素:3.遍历列表:4.访问列表中的值:5.从list删除元素. 相关免费学习推荐:python教 ...

  10. python列表怎么比较大小_python列表怎么比较大小

    Python中可以使用cmp()函数比较两个列表的大小. cmp()函数语法:cmp(list1, list2) 参数: list1 -- 比较的列表.list2 -- 比较的列表. 返回值: 如果比 ...

最新文章

  1. 【RocketMQ工作原理】
  2. Python操作Memcached
  3. 删除一个目录及其子目录下的所有.svn文件
  4. 农区养羊如何配套种草
  5. 嵌入式设备带操作系统的启动过程
  6. 社区 正式发布了跨平台的 CoreWCF 0.2.0
  7. 三电平igbt死区时间计算_IGBT基础与运用-2
  8. 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
  9. ArcGIS案例学习笔记2_2_等高线生成DEM和三维景观动画
  10. 设计安全的账号系统的正确姿势
  11. XP电脑开机就检查硬盘
  12. 小程序开发合同_如何开发微信小程序?
  13. oracle物理备份与恢复,ORACLE数据库备份与恢复详解
  14. ES6转化ES5方法(处理低版本手机白屏等兼容问题)
  15. 爱情的诗·11~15节
  16. PHP服务器获取客户端IP地址
  17. opencv人脸识别之让电脑分清吴彦祖和彭于晏 (LBPH)
  18. 【51单片机】Proteus C51 例题
  19. 【内推】阿里集团2018届毕业生招聘
  20. 给大学生的18条建议

热门文章

  1. 二叉搜索树(kv模型)的模拟实现
  2. graphpad prism8教程柱状图_GraphPad 8.0 新功能:柱状图功能体验大优化!(附教学)...
  3. 原型工具Axure常见问题
  4. 英语作文计算机80词九年级,英语作文80词左右初三带翻译
  5. CSV写入时指定表头
  6. 计算机的硬盘容量可以调,怎么查看电脑硬盘容量_怎么查看电脑内存大小
  7. Mark一下,以提醒自己
  8. mysql启动的errmsg.sys文件路径问题
  9. 【腾讯TMQ】远程移动测试平台对比分析
  10. Oracle Instead of Trigger的用法