,,Pandas常用累计、同比、环比等统计方法实践过程

,,Pandas常用累计、同比、环比等统计方法实践过程

本文主要介绍熊猫实践过程中常用的统计方法,如累计、同比、环比等。有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。

:

目录

1.(本年)累计2。(去年)累计3。上月(完成)4。同比(增速)5。环比(增长率)6。在汇总统计中,经常以本年累计、去年累计、本期累计(如当月)、上月完成为统计数据,进行同比和环比分析。

如下月度统计表所示,本文将使用Python熊猫工具进行统计。

其中包括:

累计(本年):指1月至本年(去年)结束的总人数与同期(累计):指去年1月至本年结束的总人数的同比(增长率)=(本期-同期)/同期* 100%环比(增长率)=(本期-上期)/上期* 100%。

注:此处本期指本月或当月完成数,上期数指上月完成数。

样本数据:

注:为便于论证,本案例的数据来源仅使用2年的数据和每年5个月的数据。

1.(本年)累计

在统计分析的发展中,每年和每月积累一些统计数据是一种普遍的需求。对于数据来说,就是按照规则逐行积累数据。

熊猫中的Cumsum()函数可以按照一定的时间维度累计需求。

#取今年累计值。

进口熊猫作为pd

df=pd.read_csv('data2021.csv ')

cum _ columns _ name=[' cum _ churn count ',' cum_newcount']

df[累计列名]=df[['年',' churncount ',' newcount']]。groupby(['years'])。累计和()

注意:分组“年”指的是每年的时间维度累积。

计算结果如下:

2.(上年)同期累计

同期(去年)累计,直接取上年累计值的同月数据。Pandas DataFrame.shift()函数可以按指定的行数移动数据。

继续上面,读取同期数据。首先,将year month上移五行,得到一个新的数据框架,如上图所示。然后用'年月'关联两个表的数据(左关联:左边是原表,右边是移动后的新表),从而达到数据不同步的效果。

cum _ columns _ dict={ ' cum _ churn count ':' cum _ same _ period _ churn count ',

cum _ new count ':' cum _ same _ period _ new count ' }

df _ cum _ same _ period=df[[' cum _ churn count ',' cum_newcount ',' yearmonth']]。复制()

df _ cum _ same _ period=df _ cum _ same _ period . rename(columns=cum _ columns _ dict)

# df _ cum _ same _ period.loc [:'年月']=df _ cum _ same _ period ['年月']。shift (-12) #一年中的12个月

Df _ cum _ same _ period.loc [:'年月']=df _ cum _ same _ period ['年月']。shift (-5) #因为只有5个月的数据可用,

df=pd.merge(left=df,right=df_cum_same_period,on='yearmonth ',how='left ')

3. 上月(完成)

取上个月的数据,使用pandas DataFrame.shift()函数将数据移动指定的行数。

继续上图,读取上期数据。(与同步原理相同,略)

last _ MnO th _ columns _ dict={ ' churn count ':' last _ month _ churn count ',

新计数':'上个月新计数' }

df_last_month=df[['churncount ',' newcount ',' yearmonth']]。复制()

df _ last _ month=df _ last _ month . rename(columns=last _ MnO th _ columns _ dict)

Df _ last _ month.loc [:'年月']=df _ last _ month ['年月']。Shift (-1) #移动一行

df=pd.merge(left=df,right=df_last_month,on='yearmonth ',how='left ')

4. 同比(增长率)

同比计算涉及除法,需要剔除除数为零的数据。

Df.fillna(0,inplace=True) #空值用0填充

#计算同比

df . loc[df[' cum _ same _ period _ churn count ']!=0,' cum _ churn count _ rat ']=(df[' cum _ churn count ']-df[' cum _ same _ period _ churn count '])/df[' cum _ same _ period _ churn count ']#除数不能为零。

df . loc[df[' cum _ same _ period _ new count ']!=0,' cum _ new count _ rat ']=(df[' cum _ new count ']-df[' cum _ same _ period _ new count '])/df[' cum _ same _ period _ new count ']#除数不能为零。

df[['yearmonth ',' cum_churncount ',' cum_newcount ',' cum_same_period_churncount ',' cum_churncount_rat ',' cum_newcount_rat']]

5. 环比(增长率)

#计算环比

df。loc[df[' last _ month _ churn count ']!=0,'客户流失计数']=(df['客户流失计数']-df['上月客户流失计数'])/df['上月客户流失计数']#除数不能为零

df。loc[df['上个月新计数']!=0,'新计数_ rat ']=(df['新计数']-df['上个月_新计数'])/df['上个月_新计数']#除数不能为零

df[['yearmonth ',' churncount ',' newcount ',' last_month_churncount ',' last_month_newcount ',' churncount_rat ',' newcount_rat']]

6. 总结

熊猫做统计计算功能方法比较多,这里总结用到的技术有累计累计和()函数、移动数据shift()函数、表合并关联合并()函数,以及通过通信线路(通信线路)条件修改数据。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: