pandas计算同比,pandas统计分析基础
本文主要介绍熊猫实践过程中常用的统计方法,如累计、同比、环比等。有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
00-1010 1.(本年)累计2。(去年)累计3。上月(完成)4。同比(增速)5。环比(增长率)6。在汇总统计表中,经常以本年累计、去年同期(累计)、本期(如当月)、上月完成为统计数据,进行同比和环比分析。
如下月度统计表所示,本文将使用Python熊猫工具进行统计。
其中包括:
累计(本年):指1月至本年(上年)末的总人数与同期(累计):指去年1月至本年末的总人数的同比(增长率)=(本期-同期)/同期* 100%环比(增长率)=(本期-上期)/上期* 100%。
样本数据:
注:为便于论证,本案例的数据来源仅使用2年的数据和每年5个月的数据。
目录
在统计分析的发展中,每年和每月积累一些统计数据是一种普遍的需求。对于数据来说,就是按照规则逐行积累数据。
熊猫中的Cumsum()函数可以按照一定的时间维度累计需求。
#取今年累计值。
进口熊猫作为pd
df=pd.read_csv(data2021.csv )
cum _ columns _ name=[ cum _ churn count , cum_newcount]
df[累计列名]=df[[年, churncount , newcount]]。groupby([years])。累计和()
注意:分组“年”指的是每年的时间维度累积。
计算结果如下:
1.(本年)累计
同期(去年)累计,直接取上年累计值的同月数据。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 )
2.(上年)同期累计
取上个月的数据,使用pandas DataFrame.shift()函数将数据移动指定的行数。
继续上图,读取上期数据。(与同步原理相同,略)
last _ MnO th _ columns _ dict={ churn count : last _ month _ churn count ,
new count : last _ month _ new 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 )
3. 上月(完成)
同比计算涉及除法,需要剔除除数为零的数据。
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]]
4. 同比(增长率)
#计算环比
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]]
5. 环比(增长率)
熊猫做统计计算功能方法比较多,这里总结用到的技术有累计累计和()函数、移动数据shift()函数、表合并关联合并()函数,以及通过通信线路(通信线路)条件修改数据。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行信息技术软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。