最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程

 更新時間:2022年05月17日 10:37:26   作者:肖永威  
這篇文章主要介紹了Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

統(tǒng)計(jì)表中常常以本年累計(jì)、上年同期(累計(jì))、當(dāng)期(例如當(dāng)月)完成、上月完成為統(tǒng)計(jì)數(shù)據(jù),并進(jìn)行同比、環(huán)比分析。

如下月報(bào)統(tǒng)計(jì)表所示樣例,本文將使用Python Pandas工具進(jìn)行統(tǒng)計(jì)。

在這里插入圖片描述

其中:

  • (本年)累計(jì):是指本年1月到截止月份的合計(jì)數(shù)
  • (上年)同期(累計(jì)):是指去年1月到與本年累計(jì)所對應(yīng)截止月份的合計(jì)數(shù)
  • 同比(增長率)=(本期數(shù)-同期數(shù))/同期數(shù)*100%
  • 環(huán)比(增長率)=(本期數(shù)-上期數(shù))/上期數(shù)*100%

注:這里的本期是指本月完成或當(dāng)月完成,上期數(shù)是指上月完成。

示例數(shù)據(jù):

在這里插入圖片描述

注:為了演示方便,本案例數(shù)據(jù)源僅使用2年,且每年5個月的數(shù)據(jù)。

1.(本年)累計(jì)

在做統(tǒng)計(jì)分析開發(fā)中,按年度、按月累計(jì)某些統(tǒng)計(jì)數(shù)據(jù),是比較常見的需求。對于數(shù)據(jù)來說,就是按規(guī)則逐行累加數(shù)據(jù)。

Pandas中的cumsum()函數(shù)可以實(shí)現(xiàn)按某時間維度累計(jì)需求。

# 取本年累計(jì)值
import pandas as pd
df = pd.read_csv('data2021.csv')
cum_columns_name = ['cum_churncount','cum_newcount']
df[cum_columns_name] = df[['years','churncount','newcount']].groupby(['years']).cumsum()

注:其中分組‘years’是指年度時間維度累計(jì)。

計(jì)算結(jié)果如下:

在這里插入圖片描述

2.(上年)同期累計(jì)

對于(上年)同期累計(jì),將直接取上一年度累計(jì)值的同月份數(shù)據(jù)。pandas DataFrame.shift()函數(shù)可以把數(shù)據(jù)移動指定的行數(shù)。

在這里插入圖片描述

接續(xù)上列,讀取同期數(shù)據(jù)。首先是把‘yearmonth’上移五行,如上圖所示得到新的DataFrame,通過‘yearmonth’進(jìn)行兩表數(shù)據(jù)關(guān)聯(lián)(左關(guān)聯(lián):左側(cè)為原表,右側(cè)為移動后的新表),實(shí)現(xiàn)去同期數(shù)據(jù)效果。

cum_columns_dict = {'cum_churncount':'cum_same_period_churncount',
                        'cum_newcount':'cum_same_period_newcount'}
df_cum_same_period = df[['cum_churncount','cum_newcount','yearmonth']].copy()
df_cum_same_period = df_cum_same_period.rename(columns=cum_columns_dict)
#df_cum_same_period.loc[:,'yearmonth'] = df_cum_same_period['yearmonth'].shift(-12) # 一年12個月
df_cum_same_period.loc[:,'yearmonth'] = df_cum_same_period['yearmonth'].shift(-5)   # 由于只取5個月數(shù)據(jù)的原因
df = pd.merge(left=df,right=df_cum_same_period,on='yearmonth',how='left')

3. 上月(完成)

取上月的數(shù)據(jù),使用pandas DataFrame.shift()函數(shù)把數(shù)據(jù)移動指定的行數(shù)。

接續(xù)上列,讀取上期數(shù)據(jù)。(與取同期原理一樣,略)

last_mnoth_columns_dict = {'churncount':'last_month_churncount',
                        'newcount':'last_month_newcount'}
df_last_month = df[['churncount','newcount','yearmonth']].copy()
df_last_month = df_last_month.rename(columns=last_mnoth_columns_dict)
df_last_month.loc[:,'yearmonth'] = df_last_month['yearmonth'].shift(-1)  # 移動一行
df = pd.merge(left=df,right=df_last_month,on='yearmonth',how='left')

4. 同比(增長率)

計(jì)算同比涉及到除法,需要剔除除數(shù)為零的數(shù)據(jù)。

df.fillna(0,inplace=True) # 空值填充為0 
# 計(jì)算同比
df.loc[df['cum_same_period_churncount']!=0,'cum_churncount_rat'] = (df['cum_churncount']-df['cum_same_period_churncount'])/df['cum_same_period_churncount'] # 除數(shù)不能為零
df.loc[df['cum_same_period_newcount']!=0,'cum_newcount_rat'] =  (df['cum_newcount']-df['cum_same_period_newcount'])/df['cum_same_period_newcount'] # 除數(shù)不能為零
df[['yearmonth','cum_churncount','cum_newcount','cum_same_period_churncount','cum_same_period_newcount','cum_churncount_rat','cum_newcount_rat']]

在這里插入圖片描述

5. 環(huán)比(增長率)

# 計(jì)算環(huán)比
df.loc[df['last_month_churncount']!=0,'churncount_rat'] = (df['churncount']-df['last_month_churncount'])/df['last_month_churncount'] # 除數(shù)不能為零
df.loc[df['last_month_newcount']!=0,'newcount_rat'] =  (df['newcount']-df['last_month_newcount'])/df['last_month_newcount'] # 除數(shù)不能為零
df[['yearmonth','churncount','newcount','last_month_churncount','last_month_newcount','churncount_rat','newcount_rat']]

在這里插入圖片描述

6. 總結(jié)

pandas做統(tǒng)計(jì)計(jì)算功能方法比較多,這里總結(jié)用到的技術(shù)有累計(jì)cumsum()函數(shù)、移動數(shù)據(jù)shift()函數(shù)、表合并關(guān)聯(lián)merge()函數(shù),以及通過loc條件修改數(shù)據(jù)。

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用python實(shí)現(xiàn)文件備份

    用python實(shí)現(xiàn)文件備份

    大家好,本篇文章主要講的是用python實(shí)現(xiàn)文件備份,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • python GUI庫圖形界面開發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例

    python GUI庫圖形界面開發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下
    2020-02-02
  • Python抖音快手代碼舞(字符舞)的實(shí)現(xiàn)方法

    Python抖音快手代碼舞(字符舞)的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Python抖音快手代碼舞的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python 布爾類型示例精講

    Python 布爾類型示例精講

    這篇文章主要為大家介紹了Python 布爾類型示例精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Django 靜態(tài)文件配置過程詳解

    Django 靜態(tài)文件配置過程詳解

    這篇文章主要介紹了Django 靜態(tài)文件配置過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • tensorflow入門:TFRecordDataset變長數(shù)據(jù)的batch讀取詳解

    tensorflow入門:TFRecordDataset變長數(shù)據(jù)的batch讀取詳解

    今天小編就為大家分享一篇tensorflow入門:TFRecordDataset變長數(shù)據(jù)的batch讀取詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python實(shí)現(xiàn)多人聊天室

    python實(shí)現(xiàn)多人聊天室

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python實(shí)現(xiàn)Excel表格轉(zhuǎn)HTML

    Python實(shí)現(xiàn)Excel表格轉(zhuǎn)HTML

    Excel工作簿是常用的表格格式,廣泛用于組織、分析及展示數(shù)據(jù),這篇文章主要為大家詳細(xì)介紹了如何使用Python將Excel工作簿或工作表轉(zhuǎn)換為HTML文件,需要的可以參考下
    2024-03-03
  • Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解

    Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解

    這篇文章主要介紹了Python二進(jìn)制文件讀取并轉(zhuǎn)換為浮點(diǎn)數(shù)詳解,用python讀取二進(jìn)制文件,這里主要用到struct包,而這個包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以參考下
    2019-06-06
  • 多版本Python共存的配置方法

    多版本Python共存的配置方法

    本文給大家分享的是由于工作需求,要求PC中安裝python2和python3的開發(fā)環(huán)境。那么我們應(yīng)該如何操作呢,下面我們就來探討下。
    2017-05-05

最新評論

民权县| 石楼县| 高密市| 宜黄县| 岗巴县| 台中市| 太康县| 青阳县| 休宁县| 常宁市| 许昌县| 平潭县| 淮阳县| 内丘县| 宁南县| 桃江县| 兰考县| 郎溪县| 青川县| 闸北区| 霍城县| 施甸县| 灵宝市| 馆陶县| 陕西省| 平阳县| 台中县| 盱眙县| 天峻县| 克什克腾旗| 衡东县| 黔江区| 张家川| 昌邑市| 利川市| 合水县| 鄂尔多斯市| 邛崃市| 英山县| 天峨县| 小金县|