CDA数据分析师 出品

认识环比增长率

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

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

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

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

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

计算环比增长率情况一

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

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

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

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

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

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 NaN1 -0.4793802 2.4026893 -0.2839624 NaN5 0.3867616 -0.1659267 -0.6011668 NaN9 0.09165510 -0.77360811 0.72302812 NaN13 -0.24101814 0.53450415 0.20014516 NaN17 0.03589918 -0.09147119 0.32854320 NaN21 -0.26149122 0.32679423 -0.903687dtype: float64

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

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

输出结果:

另一个常用参数periods

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

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

输出结果:

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

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

matlab面板数据怎么求增长率的公式,环比增长率怎么算公式表格(教你如何计算同比增长率)...相关推荐

  1. 上升了百分之几怎么算_计算上涨百分比的公式,上涨比例怎么算公式?

    Q1:上涨比例怎么算公式? 比如昨天收盘价为9.5元,则9.5元的10%就是0.95元.那么今天的涨停板就是9.5+0.95=10.45元,跌停价为9.5-0.95=8.55元.因为股票的最低交易价位 ...

  2. matlab面板数据处理程序,勒沙杰空间计量MATLAB(可做面板数据)

    [实例简介] 空间计量的MATLAB在原来的jpl基础上可以做面板SDM [实例截图] [核心代码] Elhorst_Panel_Code拟补jpl不能做面板 └── Elhorst_Panel_Co ...

  3. MATLAB采用筛选法求质数,C/C++利用筛选法算素数的方法示例

    什么是求素数 素数指的是因子只有1和本身的数(1不是素数),求解素数在数学上应用非常广泛,而求解n以内的素数也是我们编程时常遇到的问题,在这个问题上,筛选法求解素数运行得非常快. i在2到n-1之间任 ...

  4. 执行公式_法院诉讼费、保全费、执行费速算公式

    点击蓝字关注我们 一.诉讼费速算公式新的速算公式为: 争议金额 计算方法 1 10,000元及以下 50元 2 10,001-100,000元 金额×2.5%-200元 3 100,001-200,0 ...

  5. 如何用matlab算导数曲线,excel 曲线求导_excel怎样对表格中数据进行求导

    怎样在两个EXCEL表中导数值 用VLOOKUP函数. 举例:看图片上的例子 =VLOOKUP(E2,A:B,2,0) 这个公式的含义是,E2就是你说的表1上的名称这个单元格,A:B就是2表中的两列, ...

  6. 基于面板数据的熵值法

    说明:对含年份.城市.指标的面板数据使用熵值法为各指标进行客观赋权,从而得出各城市的综合得分.本文对基于面板数据的熵值法公式做出解释并给出MATLAB代码实现. 公式理解1 Step1:指标选取.设有 ...

  7. 1.面板数据模型理论--变截距面板数据模型

    变截距面板数据模型 变截距面板数据模型理论介绍 混合效应模型 背景思想 回归公式可以忽略个体与时间变化的差异,因此所有的数据特征可以通过一个公式进行刻画.进行数据的大杂烩.乱炖.为什么采取这么直接粗暴 ...

  8. 如何利用MATLAB对数据统计分析?

    文章目录 0前言 1 求最大元素与最小元素 2 求平均值与中值 3 求和与求积 4 累加和与累乘积 5 求标准差与相关系数 6 排序 7 结语 0前言 本文是科学计算与MATLAB语言的专题6的第1小 ...

  9. matlab横截面数据的统计,常用统计分析软件汇总

    前言 我们在工作过程中或者更在找工作的过程中,常常发现大家数据分析的软件或统计分析的软件有很多.我们这里对常用的统计分析软件做一个简单的介绍. (1)Excel Excel是我们最常见的办公工具,对于 ...

  10. 使用Matlab对数据归一化

    前言 在使用机器学习做分类和回归分析时,往往需要对训练和测试数据首先做归一化处理.这里就对使用MATLAB对数据进行归一化方法做一个小总结. 为什么进行归一化 一般做机器学习应用的时候大部分时间是花费 ...

最新文章

  1. php7可以做什么开发,php7 图形用户界面GUI 开发怎么做?看完这个代码你就明白了...
  2. Django 获取前端发送的头文件
  3. Java print流简介
  4. 20211124 自动化学科领域高质量技期刊分级目录(控制理论与控制工程)
  5. 万物皆可文本时代来临?如何搞定NLP最强模型GPT
  6. Boost.PolyCollection 性能测试
  7. Matplotlib绘制动态曲线图,超简单!!
  8. AntDB上使用表空间
  9. 环美亚二十年装修师傅分享,甲醛的八种来源
  10. [改善Java代码] 推荐使用序列化实现对象的拷贝
  11. 个人“乱七八糟”笔记和摘要之二
  12. ‘sort’命令的14个有用的范例
  13. mysql时间返回整小时_MySql 时间处理
  14. 电脑版微信怎么看朋友圈_电脑上也可以看朋友圈,99%的人都不知道!
  15. next主题配置文件解读
  16. java 打包发布_一个java项目的打包与发布
  17. X8AIP 驱动程序
  18. word2016版本解决脚注分栏情况
  19. 【C语言】打印杨辉三角形
  20. Introducing Android Instant Apps - Google I-O 2016 翻译字幕

热门文章

  1. java应聘面试自我介绍范文
  2. 主板怎么开启csm_B460主板BIOS设置CSM选项无法开启的解决方法
  3. 华为手机系统更新成鸿蒙,如何将自己的华为手机升级成鸿蒙系统
  4. linux vm使用物理磁盘,vmware使用整个物理硬盘做虚拟机的注意事项
  5. ubuntu查看磁盘分区使用
  6. ATTiny85 Arduino开发环境搭建及使用
  7. crfclust.bdb文件过大处理
  8. Android Studio报错Error:java.lang.RuntimeException: Crunching Cruncher xx.png failed, see logs
  9. Linux下制作动图的软件,GIF制作教程 | 如何制作高清动图_什么值得买
  10. Conflux人物志 | 柠檬树上柠檬果,柠檬树下他和他