pandas 同比,pandas计算占比
同比和环比都是用来表示数据变化的速度,只是基数不同。同比侧重于长期数据趋势变化,环比侧重于短期数据趋势变化。以下文章主要介绍如何利用熊猫计算月环比和同比数据的相关信息,有需要的可以参考一下。
00-1010前言1。资料准备2。连锁计算3。同比计算4。pct_change()函数5。附言
目录
在分析业务数据时,经常需要用熊猫来计算环比、同比、增速等指标。为了统计更方便,排序方法如下。
前言
为了演示方便,这里提前生成了要统计的数据,数据已经按照时间维度进行了排序。
months=PD . date _ range(start= 2010-01-01 ,end=2020-12-31 ,freq=M )
测试_df=pd。DataFrame({ 月 :个月,
v : 100 * NP . random . rand(months . shape[0],1)。shape(months.shape[0])})
1.数据准备
2.1方法1
test_df[v_last]=test_df[v]。移位(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 ]。差异()
test _ df[ month _ erlier _ 2 ]=test _ df[ m _ m _ diff ]/test _ df[ v ]。移位(1)
2.3方法3
test _ df[ month _ er lier _ 3 ]=test _ df[ v ]。pct_change()
2.环比计算
继续使用上面构建的数据源进行计算。
3.1方法1
test _ df[ last _ year _ v ]=test _ df[ v ]。换档(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 ]。差异(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 _ er lier _ 3 ]=test _ df[ v ]。pct_change(periods=12)
3.同比计算
Pct_change主要涉及以下参数:
Periods=1,用于设置计算周期。Fill _ method= pad ,在计算百分比变化之前,如何处理缺失值(NA)。Limit=None,设置停止填充条件,即当遇到填充的连续缺失值的个数n时,在此处停止填充freq=None,使用时间序列API中使用的increment(如 m 或BDay())4.1中的例1。
#构建数据
months=PD . date _ range(start= 2020-01-01 ,end=2020-12-31 ,freq=M )
test_df2=pd。DataFrame({ 月 :个月,
v : 100 * NP . random . rand(months . shape[0],1)。使再成形
(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时不进行填充
计算效果图:
4.2 使用例子2
# 生成样本数据
样本数据截图:
计算同环比:
test_df3.pct_change(axis=columns,periods=-1)
计算效果截图:
4.3 使用例子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)):
方法二:
使用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()
计算同比增长
使用一阶差分函数diff()
data[tongbi_shu] = data.mony.diff(12)
5.后记
以上就是时候用pandas进行计算同比和环比的方法,请在使用过程中,结合数据情况先进行数据清洗后,再选择合适的方法进行计算。
到此这篇关于使用pandas计算环比和同比的文章就介绍到这了,更多相关pandas计算环比和同比内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。