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()函数、表合并关联合并()函数,以及通过通信线路(通信线路)条件修改数据。

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

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