本文主要介绍熊猫实践过程中常用的统计方法,如累计、同比、环比等。有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
:
目录
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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。