pandas计算同比,pandas统计分析基础

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

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