使用pandas计算环比、同比
https://blog.csdn.net/littleRpl/article/details/91490704
同比 和 环比 都是为了显示数据的变化速度,但是基数不同,同比侧重长期数据趋势变化,环比侧重于短期内数据趋势变化
同比是指在同一时期内的数据趋势变化,用于本期与同期的对比,例如本期2018-02月销售额与同期2017-02月销售额做对比。【(本期 - 同期)/ 同期】
环比是指在短时间内的数据趋势变化,用去本期与临近一起的对比,例如本期2018-02月销售额与上一期2018-01月销售额做对比。【(本期 - 临近一期)/ 临近一期】
下面是计算环比的例子,其实同比可以参照这种思路。
import pandas as pd
import random
from datetime import datetime
import matplotlib.pyplot as plt
date = list(pd.date_range('1/1/2017', periods=24, freq='M')) #生成日期
sale = [random.randint(1000,9000) for i in range(0,24)] #随机生成销售额
data = pd.DataFrame({'date':date,'sale':sale}) #组成一个dataframe
data.head()
date | sale | |
---|---|---|
0 | 2017-01-31 | 2444 |
1 | 2017-02-28 | 1044 |
2 | 2017-03-31 | 7069 |
3 | 2017-04-30 | 2996 |
4 | 2017-05-31 | 5050 |
data['diff'] = data["sale"].diff()
data.head()
date | sale | diff | |
---|---|---|---|
0 | 2017-01-31 | 2444 | NaN |
1 | 2017-02-28 | 1044 | -1400.0 |
2 | 2017-03-31 | 7069 | 6025.0 |
3 | 2017-04-30 | 2996 | -4073.0 |
4 | 2017-05-31 | 5050 | 2054.0 |
data["huanbi"]=["NaN"]+[i/j for i,j in zip(list(data['diff'])[1:],list(data['sale'])[:23])]
data.head()
date | sale | diff | huanbi | |
---|---|---|---|---|
0 | 2017-01-31 | 2444 | NaN | NaN |
1 | 2017-02-28 | 1044 | -1400.0 | -0.572831 |
2 | 2017-03-31 | 7069 | 6025.0 | 5.77107 |
3 | 2017-04-30 | 2996 | -4073.0 | -0.576178 |
4 | 2017-05-31 | 5050 | 2054.0 | 0.685581 |
data1 = data.iloc[1:] #去掉第一行
data1 = data1.set_index(['date'], drop=True) #设置索引
#时序图
plt.figure(figsize=(10, 6))
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
data1["huanbi"].plot()
plt.xlabel('日期',fontsize=12,verticalalignment='top')
plt.ylabel('环比',fontsize=14,horizontalalignment='center')
plt.show()
使用pandas计算环比、同比相关推荐
- python pandas 计算环比、同比 pct_change -- 自定义函数
加载库 import random import pandas as pd import numpy as np 随机生成数据集(DataFrame格式) DataRanges = pd.date_r ...
- Pandas常用累计、同比、环比等统计方法实践案例
统计表中常常以本年累计.上年同期(累计).当期(例如当月)完成.上月完成为统计数据,并进行同比.环比分析.如下月报统计表所示样例,本文将使用Python Pandas工具进行统计. 其中: (本年)累 ...
- EasyExcel第三弹 + hutool-poi 配合使用导出较复杂Excel.xlsx + 计算增长率、同比环比、比重等
一.回顾 继上次"动态表头easyExcel导入导出(https://blog.csdn.net/qq_37337660/article/details/114680512)", ...
- oracle计算数据环比sql,用分析函数计算环比、同比oracle
1.普及一下概念 环比 = 2018年10月/2018年09月(同一时期内不同时间段的比较) 同比 = 2018年10月/2017年10月(不同时期内相同时间段的比较) 环比增长率 = (2018年 ...
- MySQL 计算环比(同比类似)
目的: 计算上海市某企业(WATER_METER_ID = 592)在2018.1.1到2018.11.5每个月的用水量,上个月的用水量以及月环比. 1.查看库表 SELECT ...
- python使用pandas计算dataframe中每个分组的分位数极差、分组数据的分位数极差(range)、使用groupby函数和agg函数计算分组的两个分位数
python使用pandas计算dataframe中每个分组的分位数极差.分组数据的分位数极差(range).使用groupby函数和agg函数计算分组的两个分位数 目录
- python使用pandas计算dataframe中每个分组的极差、分组数据的极差(range)、使用groupby函数和agg函数计算分组的最大值和最小值
python使用pandas计算dataframe中每个分组的极差.分组数据的极差(range).使用groupby函数和agg函数计算分组的最大值和最小值 目录
- pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号
pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号
- pandas计算滑动窗口中的最小值实战(Rolling Minimum in a Pandas Column):计算单数据列滑动窗口中的最小值、计算多数据列滑动窗口中的最小值
pandas计算滑动窗口中的最小值实战(Rolling Minimum in a Pandas Column):计算单数据列滑动窗口中的最小值.计算多数据列滑动窗口中的最小值 目录
- pandas计算滑动窗口中的最大值实战(Rolling Maximum in a Pandas Column):计算单数据列滑动窗口中的最大值、计算多数据列滑动窗口中的最大值
pandas计算滑动窗口中的最大值实战(Rolling Maximum in a Pandas Column):计算单数据列滑动窗口中的最大值.计算多数据列滑动窗口中的最大值 目录
最新文章
- 纯键盘操作,玩转资源管理器
- java异常什么时候抛出异常,java - 什么时候应该抛出IllegalArgumentException?
- flink sql client讀取kafka數據的timestamp(DDL方式)
- sudo apt-get update 与 sudo apt-get upgrate 的区别
- 计算机二级考试试题在线看,【TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读材料】...
- IOS – OpenGL ES 调节图像反色 GPUImageColorInvertFilter
- Angular Light 指令用法
- Android笔记 隐式意图demo
- UITableView 编辑和删除行
- 计算机网络的硬盘组成,大卸八块!编辑为你揭秘硬盘的内部结构
- json数据格式分析
- JavaScript:get和post的区别
- c语言程序 题库管理,C语言程序设计题库管理.doc
- c语言清华大学谭浩强笔记,(完整)C语言谭浩强学习笔记.doc
- 新手坐高铁怎么找车厢_新手坐高铁怎么找车厢
- JavaScript基本语法
- 重磅!超详细的 JS 数组方法整理出来了
- Simulink三相电机仿真(2)
- 目标检测Tensorflow:Yolo v3代码详解 (2)
- RGCF:Learning to Denoise Unreliable Interactions forGraph Collaborative Filtering论文解读
热门文章
- c语言求圆锥的表面积和体积_有关C语言:求圆锥体的体积和表面积,急!!!!!!1...
- 首届技术播客月开播在即
- vue build打包后提示:Tip: built files are meant to be served over an HTTP server
- Navicat 11 Premium中文破解版使用心得
- 新闻发布系统类图_信息系统项目管理师快速记忆口诀
- 读懂Redis源码,我总结了这7点心得
- npm install报错error 404 Not Found - GET httpsregistry.npm.taobao.org@xt
- 合宙Air720UH链接阿里云流程
- 用Python模拟高尔顿钉板实验
- XML解析之 MSXML应用总结 开发篇(上)