pandas如何计算同比环比增长

 更新时间:2022年05月17日 10:59:13   作者:三三三三酱  
这篇文章主要介绍了pandas如何计算同比环比增长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

计算同比环比增长

问题描述

我有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:移动的幅度 默认值为1
  • axis:移动的方向,{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如何高效处理文本匹配

    一文详解Python如何高效处理文本匹配

    当你需要在Python中处理文本数据时,正则表达式绝对是你的瑞士军刀,今天小编就来和大家一起聊聊Python中re模块的那些实用技巧和常见陷阱吧
    2025-04-04
  • opencv3/Python 稠密光流calcOpticalFlowFarneback详解

    opencv3/Python 稠密光流calcOpticalFlowFarneback详解

    今天小编就为大家分享一篇opencv3/Python 稠密光流calcOpticalFlowFarneback详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python实现排序算法、查找算法和图遍历算法实例

    Python实现排序算法、查找算法和图遍历算法实例

    这篇文章主要介绍了Python实现排序算法、查找算法和图遍历算法实例,排序算法、查找算法和图遍历算法是计算机科学中常见且重要的算法。它们在数据处理、搜索和图结构等领域发挥着关键作用,需要的朋友可以参考下
    2023-08-08
  • Jupyter的工作目录(根目录)位置介绍

    Jupyter的工作目录(根目录)位置介绍

    这篇文章主要介绍了Jupyter的工作目录(根目录)位置,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Python实现一个完整学生管理系统

    Python实现一个完整学生管理系统

    这篇文章主要为大家详细介绍了如何利用python实现学生管理系统(面向对象版),文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-01-01
  • Python字典使用技巧详解

    Python字典使用技巧详解

    Python 中字典和集合也是非常相近的概念,而且从外观看上去,也有那么一丝丝的相似。本文将从字典基本知识入手,为你展开字典类型数据的各个知识点,需要的可以参考一下
    2022-11-11
  • python iloc和loc切片的实现

    python iloc和loc切片的实现

    本文主要介绍了python iloc和loc切片的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • python 对多个csv文件分别进行处理的方法

    python 对多个csv文件分别进行处理的方法

    今天小编就为大家分享一篇python 对多个csv文件分别进行处理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python三百行代码实现飞机大战

    Python三百行代码实现飞机大战

    飞机大战想必大家可能玩过微信的这款小游戏,给我的感觉是这款游戏怎么可以做得这么好呢,操作简单,容易上手,简直是“老少皆宜”啊,既然这款游戏这么棒,能否自己动手用 Python 来实现呢?事实证明是可以的
    2022-09-09
  • Python 人工智能老照片修复算法学习

    Python 人工智能老照片修复算法学习

    老旧或者破损的照片如何修复呢?本文主要介绍了一个非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-Life。感兴趣的小伙伴快来看看呀
    2021-11-11

最新评论