返回顶部
首页 > 资讯 > 后端开发 > Python >使用pandas计算环比和同比的方法实例
  • 471
分享到

使用pandas计算环比和同比的方法实例

2024-04-02 19:04:59 471人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1.数据准备2.环比计算3.同比计算4.关于pct_change()函数5.后记前言 在进行业务数据分析时,往往需要使用pandas计算环比、同比及增长率等指标,为了能够更加

前言

在进行业务数据分析时,往往需要使用pandas计算环比、同比及增长率等指标,为了能够更加方便的进行的统计数据,整理方法如下。

1.数据准备

为方便进行演示,此处提前生成需要进行统计的数据,数据已经是按照时间维度进行排序

months = pd.date_range(start='2010-01-01', end='2020-12-31', freq='M')
test_df = pd.DataFrame({'month': months,
                  'v': 100*np.random.rand(months.shape[0], 1).reshape(months.shape[0])})

2.环比计算

2.1 方法1

test_df['v_last']=test_df['v'].shift(1)
test_df['month_erlier_1']=test_df['v']/test_df['v_last']-1

2.2 方法2

test_df['m_m_diff']=test_df['v'].diff()
test_df['month_erlier_2']=test_df['m_m_diff']/test_df['v'].shift(1)

2.3 方法3

test_df['month_erlier_3']=test_df['v'].pct_change()

3.同比计算

继续使用上述构建的数据源进行计算。

3.1 方法1

test_df["last_year_v"]=test_df['v'].shift(12)
test_df['year_erlier_1']=test_df['v']/test_df['last_year_v']-12

3.2 方法2

test_df["year_diff"]=test_df['v'].diff(12)
test_df['year_diff'].fillna(0,inplace=True)
test_df['year_erlier_2']=test_df['year_diff']/(test_df['v']-test_df['year_diff'])

3.3 方法3

test_df['year_erlier_3']=test_df["v"].pct_change(periods=12)

4.关于pct_change()函数

pct_change主要涉及一下参数:

  • periods=1,用来设置计算的周期。
  • fill_method=‘pad’,如何在计算百分比变化之前处理缺失值(NA)。
  • limit=None,设置停止填充条件,即当遇到填充的连续缺失值的数量n时,停止此处填充
  • freq=None,从时间序列 api 中使用的增量(例如 ‘M’ 或 BDay())

4.1 使用例子1

#构建数据
months = pd.date_range(start='2020-01-01', end='2020-12-31', freq='M')
test_df2 = pd.DataFrame({'month': months,
                  'v': 100*np.random.rand(months.shape[0], 1).reshape(months.shape[0])})
test_df2.loc[((test_df2.index>5) & (test_df2.index<9) ),'v']=np.nan
test_df2.loc[test_df2.index==3,'v']=np.nan
test_df2.loc[test_df2.index==10,'v']=np.nan

数据展示:

原始数据

计算环比:

#向下进行填充,当连续缺失值的数量大于2时不进行填充
test_df2['v'].pct_change(1,fill_method='ffill',limit=2)

计算效果图:

环比计算

4.2 使用例子2

# 生成样本数据
test_df3 = pd.DataFrame({'2020': 100*np.random.rand(5).reshape(5),
                         '2019': 100*np.random.rand(5).reshape(5),
                         '2018':  100*np.random.rand(5).reshape(5)})

样本数据截图:

样本2

计算同环比:

test_df3.pct_change(axis='columns',periods=-1)

计算效果截图:

计算结果2

4.3 使用例子3

#构建数据样本
months = pd.date_range(start='2020-01-01', end='2020-12-31', freq='M')

test_df4 = pd.DataFrame({
    'v': 100*np.random.rand(months.shape[0], 1).reshape(months.shape[0])}, index=months)

数据样本截图:

样本3

计算季度末环比:

test_df4["v"].pct_change(freq="Q")

计算效果图:

季末计算环比

计算过程解释:

2020-03-31行处的值:使用3月份和1月份进行环比,即55.717305/84.492806-1
2020-06-30行处的值:使用6月份和3月份进行环比

计算环比增长

方法一:

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'])
``

5.后记

以上就是时候用pandas进行计算同比和环比的方法,请在使用过程中,结合数据情况先进行数据清洗后,再选择合适的方法进行计算。

到此这篇关于使用pandas计算环比和同比的文章就介绍到这了,更多相关pandas计算环比和同比内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用pandas计算环比和同比的方法实例

本文链接: https://lsjlt.com/news/143846.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用pandas计算环比和同比的方法实例
    目录前言1.数据准备2.环比计算3.同比计算4.关于pct_change()函数5.后记前言 在进行业务数据分析时,往往需要使用pandas计算环比、同比及增长率等指标,为了能够更加...
    99+
    2024-04-02
  • pandas如何计算同比环比增长
    目录计算同比环比增长问题描述数据准备计算环比增长计算同比增长同比和环比计算公式计算同比环比增长 问题描述 我有2017.1-2018.12的销售数据,计算每一个月的 同比和环比增长,...
    99+
    2024-04-02
  • Pandas常用累计、同比、环比等统计方法实践过程
    目录1.(本年)累计2.(上年)同期累计3. 上月(完成)4. 同比(增长率)5. 环比(增长率)6. 总结统计表中常常以本年累计、上年同期(累计)、当期(例如当月)完成、上月完成为...
    99+
    2024-04-02
  • MySQL中如何计算同比和环比
    目录前言我们先来看看什么是同比,什么是环比:那同比增长率和环比增长率又如何计算呢:同比和环比的区别在mysql中如何计算同比和环比数据准备计算同比和环比sql解析总结前言 今天在做数据建模的时候,ads层的需求中有个叫同...
    99+
    2022-06-22
    mysql计算同比和环比怎么算 mysql 同比环比 mysql 同比
  • MySQL中怎么计算同比和环比
    这篇文章主要介绍“MySQL中怎么计算同比和环比”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL中怎么计算同比和环比”文章能帮助大家解决问题。我们先来看看什么是同比,什么是环比:同比:通常是...
    99+
    2023-07-02
  • mysql计算环比的方法(多种情况)
    整理不易,转发请注明出处,请勿直接剽窃! 点赞、关注、不迷路! 摘要: 历史、当前月环比 公式:环比=(本月-上月)/上月 历史月环比(适用于计算历史每个月的环比) select (a...
    99+
    2023-09-30
    mysql 数据库 sql
  • Java算法比赛常用方法实例总结
    1. 开方:Math.sqrt(x); 2. x的a方:Math.pow(x,a); 3. 绝对值:Math.abs(x); 4. BigInteger:大数(加,减,乘,除,取余)...
    99+
    2023-05-19
    java的算法 java基本算法 java经典算法
  • python比较运算的使用方法
    这篇文章主要介绍python比较运算的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动...
    99+
    2023-06-14
  • 如何进行equals()方法和==异同的比较
    如何进行equals()方法和==异同的比较,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。equals()方法是Object类的方法,所有的类都集成了此方法,还...
    99+
    2023-06-02
  • mysql中EXISTS和IN的使用方法比较
    1、使用方式: (1)EXISTS用法 select a.batchName,a.projectId from ucsc_project_batch a wher...
    99+
    2024-04-02
  • vue3不同语法格式对比的实例代码
    默认的模板方式,和vue2差不多,在组件中使用setup函数 // 父组件 <template> <div> <div> ...
    99+
    2024-04-02
  • 基于统计的预警:同环比预警实现深度剖析
    一、UAV预警功能简介UAV.Monitor提供了对全维监控指标的预警功能,各类型的监控指标均可配置预警策略,当预警策略被触发后,可通过邮件、HTTP调用等方式进行通知报警,并会根据预警时间频率等对报警动作进行压制。预警分为流式预警、统计预...
    99+
    2023-06-04
  • PHP和Bash编程中的算法应用案例对比分析
    PHP和Bash是两种非常常见的编程语言,在不同的场景下都有着广泛的应用。在编写程序时,算法的选择和应用是非常重要的一环。本文将分别以PHP和Bash编程语言为例,探讨算法的应用案例,并进行对比分析。 PHP算法应用案例 1.1 快速排...
    99+
    2023-06-26
    并发 bash 编程算法
  • python如何实现比较运算符的方法
    这篇文章将为大家详细讲解有关python如何实现比较运算符的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现比较运算符的简单方法为一个类实现所有的比较相似(如 lt , le , gt , ge)是...
    99+
    2023-06-27
  • PHP 数组键和值互换:不同算法的效率对比
    在 php 中,互换数组键和值的最佳算法是:array_flip():时间复杂度 o(n),空间复杂度 o(n)。foreach() 循环:适用于大数组,时间复杂度 o(n),空间复杂度...
    99+
    2024-05-04
    数组 排序
  • java进行数据的比较的实例方法
    1、说明 比较基本类型==,比较对象值推荐equals或compareTo。 首先,Java中的数据存储在JVM中,而基本类型的数据存储在JVM的局部变量表中,也可以理解为所谓的“栈...
    99+
    2024-04-02
  • mybaits-plus lambdaQuery() 和 lambdaUpdate() 比较常见的使用方法
    mybaits-plus lambdaQuery() 和 lambdaUpdate() 比较常见的使用方法 文章目录 mybaits-plus lambdaQuery() 和 lambdaUp...
    99+
    2023-08-31
    mybatis java 数据库
  • 中文文本长度计算的异同:lenb函数和len函数的比较
    lenb函数和len函数对于中文文本长度计算的异同点,需要具体代码示例 【引言】在使用编程语言处理中文文本时,我们经常要计算文本的长度。在Python中,常用的计算文本长度的函数有len和lenb。这两个函数在处理中文文本时有一...
    99+
    2024-01-29
  • python数据结构leetcode338比特位计数算法怎么使用
    这篇“python数据结构leetcode338比特位计数算法怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“pyth...
    99+
    2023-07-02
  • Android ImageView 固定宽高比例的实现方法
    Android ImageView 固定宽高比例的实现方法本文主要介绍 ImageView 固定宽高比例,方法一:设置 adjustViewBounds="true",方法二:使用 Universal-Image-Loader 图片缓存类,...
    99+
    2023-05-30
    android imageview 宽高
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作