您现在的位置是:网站首页> 编程资料编程资料
pandas如何计算同比环比增长_python_
2023-05-26
300人已围观
简介 pandas如何计算同比环比增长_python_
计算同比环比增长
问题描述
我有2017.1-2018.12的销售数据,计算每一个月的 同比和环比增长,没有的话 用null代替
注释:
- 同比 和 环比 都是为了显示数据的变化速度,但是基数不同,同比侧重长期数据趋势变化,环比侧重于短期内数据趋势变化
- 同比是指在同一时期内的数据趋势变化,用于本期与同期的对比,例如本期2018-02月销售额与同期2017-02月销售额做对比。【(本期 - 同期)/ 同期】
- 环比是指在短时间内的数据趋势变化,用去本期与临近一起的对比,例如本期2018-02月销售额与上一期2018-01月销售额做对比。【(本期 - 临近一期)/ 临近一期】
数据准备
import pandas as pd import random rng = list(pd.date_range('1/1/2017', periods=24, freq='M')) #生成日期 mony = [random.randint(1000,9000) for i in range(0,24)] #随机生成销售额 data = pd.DataFrame({'rng':rng,'mony':mony}) #组成一个dataframe计算环比增长
方法一:
for i in range(0,len(data)): if i == 0: data['huanbi'][i] = 'null' else: data['huanbi'][i] = format((data['mony'][i] - data['mony'][i-1])/data['mony'][i-1],'.2%') #format(res,'.2%') 小数格式化为百分数
方法二:
使用diff(periods=1, axis=0)) 一阶差分函数
periods:移动的幅度 默认值为1axis:移动的方向,{0 or ‘index’, 1 or ‘columns’},如果为0或者’index’,则上下移动,如果为1或者’columns’,则左右移动。默认列向移动
data['huanbi_1'] = data.mony.diff()
方法三:
使用pct_change()
data['huanbi_1'] = data.mony.pct_change() data.fillna(0,inplace=True)
计算同比增长
使用一阶差分函数diff()
data['tongbi_shu'] = data.mony.diff(12) data.fillna(0,inplace=True) data['tongbi'] = data['tongbi_shu']/(data['mony'] - data['tongbi_shu']) ``
同比和环比计算公式
- 同比增长率=(本期数-同期数)÷同期数×100%
- 环比增长率=(本期数-上期数)/上期数×100%。
简单地说,就是同比、环比与定基比,都可以用百分数或倍数表示。
定基比发展速度,也简称总速度,一般是指报告期水平与某一固定时期水平之比,表明这种现象在较长时期内总的发展速度。
- 同比发展速度,一般指是指本期发展水平与上年同期发展水平对比,而达到的相对发展速度。
- 环比发展速度,一般是指报告期水平与前一时期水平之比,表明现象逐期的发展速度。同比和环比,这两者所反映的虽然都是变化速度,但由于采用基期的不同,其反映的内涵是完全不同的;
一般来说,环比可以与环比相比较,而不能拿同比与环比相比较;而对于同一个地方,考虑时间纵向上发展趋势的反映,则往往要把同比与环比放在一起进行对照。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关内容
- Python利用xlrd 与 xlwt 模块操作 Excel_python_
- Python标准库uuid模块(生成唯一标识)详解_python_
- Pandas常用累计、同比、环比等统计方法实践过程_python_
- python如何实现API的调用详解_python_
- python中的多cpu并行编程_python_
- python连接clickhouse的端口问题及解决_python_
- 详解超星脚本出现乱码问题的解决方法(Python)_python_
- Python使用ClickHouse的实践与踩坑记录_python_
- Python实现印章代码的算法解析_python_
- Python-GUI wxPython之自动化数据生成器的项目实战_python_
