教你利用 Python 计算同比、环比、定基比
俊红的数据分析之路
共 1792字,需浏览 4分钟
· 2021-07-31
1. 问题描述
日常处理销售相关的数据时,经常会遇到需要计算 同比、环比、定基比
的问题,计算方法是 「(当期 / 比较期 -1) * 100%」,在 Excel 中使用公式引用进行计算非常方便,其实使用 python 来做相应的计算也是非常简单的,本文就使用 python 来进行操作,计算出想要的结果。
先读取数据集,是 2019 年 1 月至 2021 年 3 月的销售数据。
import pandas as pd
import numpy as np
import time
import datetime
df_raw = pd.read_excel('./data.xlsx',sheet_name='Sheet1')
df_raw['日期'] = pd.to_datetime(df_raw['日期'])
df_raw = df_raw.set_index('日期')
df_raw
2. 解决方法
2.1 计算同比和环比
使用 pct_change() 函数,直接可以计算百分比对比(同比、环比)
df_raw['环比'] = df_raw['销售额'].pct_change(periods=1)
df_raw['同比'] = df_raw['销售额'].pct_change(periods=12)
df_raw['环比'] = df_raw['环比'].apply(lambda x:str(round(x * 100,2)) + '%').str.replace('nan%','')
df_raw['同比'] = df_raw['同比'].apply(lambda x:str(round(x * 100,2)) + '%').str.replace('nan%','')
df_raw
2.2 定基比
计算定基比(以 '2020-10-01' 为基准)
fixed_str = '2020-10-01'
# fixed_row = datetime.datetime.strptime(fixed_str, '%Y-%m-%d').date()
fixed_num = df_raw.loc[fixed_str,'销售额']
df_raw['定基比'] = df_raw['销售额'] / fixed_num - 1
df_raw['定基比'] = df_raw['定基比'].apply(lambda x:str(round(x * 100,2)) + '%').str.replace('nan%','')
df_raw
3. 总结
使用 pandas 库
中的pct_change() 函数
配合periods 参数
可以方便地计算同比和环比。使用 apply
自定义函数计算出定基比。
4. 资料下载
我已将以上配套数据文件和代码文件打包上传至我的 Github 和 Gitee,感兴趣的读者可以下载学习和练手。
「Github 项目地址」
「https://github.com/don2vito/wechat_project/tree/master/同比、环比、定基比」
「Gitee 项目地址」
「https://gitee.com/don2vito/wechat_official_account/blob/master/023_《和时间做朋友》系列 /03. 同比、环比、定基比.ipynb」
欢迎关注
评论
你需要知道的20个常用的Python技巧
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来源:https://medium.com翻译:小马Python的可读性和简单性是其广受欢迎的两大原因,本文介绍20个常用的Python技巧来提高代码的可读性,并能帮助你节省大量时间,下面的技巧将在你的日常编码练习中非常实用。1.
小白学视觉
0
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
谷歌员工爆料 Python 基础团队原地解散
转自 | 机器之心编辑 | 蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Tho
机器学习算法与Python实战
0
如何计算数据中心的冷却需求?
今日分享 【导读】数据中心的冷却要求受多种因素影响,包括设备的热量输出、占地面积、设施设计和电气系统功率额定值等等……众所周知,环境因素会严重影响数据中心设备。过多的热量积聚会损坏服务器,可能导致其自动关闭。经常在高于可接受的温度下运行服务器会缩短其使用
数据中心运维管理
0
五一抢票难,Github上这几个Python项目,你可以试试
又到五一长假啦(虽然其实就放了1天),大家是打算家里蹲or出去玩,又或者是在公司加班呢...今天给大家介绍三个和12306相关的项目,看看你是否用得上。/01/ py12306py12306购票助手,顾名思义,12306买票的~需要在python 3.6以上版本运行程序。1. 安装依赖gi
Crossin的编程教室
0
谷歌员工爆料Python基础团队原地解散
机器之心报道编辑:蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Thomas Wouter
机器学习初学者
0
Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习算法与Python实战
0