自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python如何計(jì)算環(huán)比增長(zhǎng)率

開發(fā) 后端
很多企業(yè)比較注重自己的業(yè)務(wù)增長(zhǎng)情況,時(shí)常會(huì)需要計(jì)算同比增長(zhǎng)率和環(huán)比增長(zhǎng)率。從上學(xué)的時(shí)候就有很多小伙伴搞不清楚這兩個(gè)增長(zhǎng)率之間的區(qū)別,這里簡(jiǎn)單直白的解釋一下:

 認(rèn)識(shí)環(huán)比增長(zhǎng)率

很多企業(yè)比較注重自己的業(yè)務(wù)增長(zhǎng)情況,時(shí)常會(huì)需要計(jì)算同比增長(zhǎng)率和環(huán)比增長(zhǎng)率。從上學(xué)的時(shí)候就有很多小伙伴搞不清楚這兩個(gè)增長(zhǎng)率之間的區(qū)別,這里簡(jiǎn)單直白的解釋一下:

同比增長(zhǎng)率從名字上就比較容易理解,指的是同期相比增長(zhǎng)情況如何,比如今年一季度和去年一季度相比業(yè)務(wù)增長(zhǎng)情況就可以用同比增長(zhǎng)率來(lái)衡量,具體的計(jì)算公式為(今年一季度數(shù)據(jù) - 去年一季度數(shù)據(jù))/去年一季度數(shù)據(jù)。這里的季度只是舉例用的,月份,周甚至天都可以作周期;

環(huán)比增長(zhǎng)率的名字可能沒(méi)有那么直觀,它指的是這一個(gè)周期與上一個(gè)周期相比增長(zhǎng)情況如何,比如第三季度和第二季度相比,業(yè)務(wù)增長(zhǎng)情況就可以用環(huán)比增長(zhǎng)率來(lái)衡量,具體計(jì)算公式為(第二季度數(shù)據(jù) - 第一季度數(shù)據(jù))/第一季度數(shù)據(jù)。當(dāng)然這里的季度也只是舉例用的,月份,周甚至天也都可以作周期。

根據(jù)具體表格情況計(jì)算環(huán)比增長(zhǎng)率

我們不能確保每次拿到的數(shù)據(jù)都是類似的格式,對(duì)不同格式的數(shù)據(jù)在計(jì)算環(huán)比增長(zhǎng)率的時(shí)候,會(huì)有一些小差別。

計(jì)算環(huán)比增長(zhǎng)率情況一

首先看一下數(shù)據(jù)集長(zhǎng)什么樣子:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

這是一種形式的表格,不同的年份,不同產(chǎn)品的銷售額,對(duì)這樣一種形式的數(shù)據(jù)計(jì)算環(huán)比增長(zhǎng)率,是比較簡(jiǎn)單的一種形式,不需要提前對(duì)數(shù)據(jù)做過(guò)多的整理。

這里需要注意的是,我們希望能夠保留年份信息,而用來(lái)計(jì)算的函數(shù)會(huì)把表格中所有數(shù)值型數(shù)據(jù)都進(jìn)行環(huán)比運(yùn)算,所以需要提前將年份信息轉(zhuǎn)化成索引:

df1 = df.set_index("year") #為了不改變?cè)瓟?shù)據(jù),將充值索引后的數(shù)據(jù)賦值給df1df1 #查看修改索引后的數(shù)據(jù)集

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

修改索引后的表可以直接進(jìn)行計(jì)算了:

df1.pct_change() #pct_change()方法計(jì)算當(dāng)前元素與先前元素之間的百分比變化

輸出結(jié)果:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

這樣計(jì)算的就是每一年和前一年相比的一個(gè)環(huán)比增長(zhǎng)率,當(dāng)然實(shí)際工作中一般不會(huì)保留這么多位小數(shù),需要處理一下:

round(df1.pct_change(),4) #保留四位小數(shù),由于增長(zhǎng)率一般是百分?jǐn)?shù),所以這里保留4位小數(shù)

輸出結(jié)果:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

這樣基本就是常見的環(huán)比增長(zhǎng)率了。

計(jì)算環(huán)比增長(zhǎng)率情況二

來(lái)看另一種樣子的數(shù)據(jù)集:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

這一種數(shù)據(jù)集明顯比上一個(gè)數(shù)據(jù)集復(fù)雜了一點(diǎn),而且這是整個(gè)數(shù)據(jù)集的前十行,下邊我們簡(jiǎn)單探索下這個(gè)數(shù)據(jù)集:

首先一目了然,一共有三列,分別是產(chǎn)品ID,年份,銷售金額;

然后需要探索一共有多少個(gè)產(chǎn)品ID,即一共有幾種產(chǎn)品,還有一共是幾年的數(shù)據(jù):

data.ID.unique() #產(chǎn)看有幾種產(chǎn)品ID

輸出結(jié)果:

array(['001', '002', '003', '004', '005', '006'], dtype=object)

一共有6種產(chǎn)品

data.year.unique() #查看一共有幾年數(shù)據(jù)

輸出結(jié)果:

array(['2016', '2017', '2018', '2019'], dtype=object)

一共有4年的數(shù)據(jù)。

那么這種數(shù)據(jù)要怎樣計(jì)算環(huán)比增長(zhǎng)率呢?

有兩種方法,一種是將原數(shù)據(jù)集轉(zhuǎn)化成第一種數(shù)據(jù)集情況的樣子,第二種是不改變?cè)瓟?shù)據(jù)集計(jì)算環(huán)比增長(zhǎng)率

先看方法一

通過(guò)數(shù)據(jù)透視的方法,將原數(shù)據(jù)進(jìn)行加工:

data1 = data.pivot(index = "ID",columns="year",values="amount" )data1 #為了不改變?cè)瓟?shù)據(jù),將數(shù)據(jù)透視后的結(jié)果賦值給data1

輸出結(jié)果:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

這里的行索引和列名可以進(jìn)行互換,在data.pivot()的參數(shù)中進(jìn)行設(shè)置就可以,雖然和第一種情況類似,但是仔細(xì)觀察又發(fā)現(xiàn)了不同,第一種情況數(shù)據(jù)集的行索引是年份,這份數(shù)據(jù)中行索引是產(chǎn)品ID,其實(shí)這個(gè)是沒(méi)有影響的,計(jì)算環(huán)比增長(zhǎng)率的方法中有參數(shù)可以解決這種情況:

data1.pct_change(axis='columns') #只需要設(shè)置一下軸信息就可以改變運(yùn)算方向

輸出結(jié)果:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

橫向排列的就是每一個(gè)產(chǎn)品每一年的環(huán)比增長(zhǎng)率,接下來(lái),看另一種不對(duì)數(shù)據(jù)進(jìn)行處理的方法。

再看方法二

由于一共是四年數(shù)據(jù),規(guī)律明顯,所以運(yùn)用循環(huán)的方法計(jì)算環(huán)比增長(zhǎng)率:

s = pd.Series() #新建一個(gè)空series用來(lái)放置計(jì)算結(jié)果for i in data["ID"].unique(): #行索引是產(chǎn)品ID,所以有多少種商品,就循環(huán)多少次 data_new = data[data["ID"]==i] #將相同產(chǎn)品的數(shù)據(jù)提取出來(lái) s = pd.concat([s,data_new["amount"].pct_change()]) #計(jì)算一種產(chǎn)品的環(huán)比增長(zhǎng)率,并價(jià)格計(jì)算出的記過(guò)拼接到series中s #查看最終結(jié)果

輸出結(jié)果:

0 NaN1 -0.4793802 2.4026893 -0.2839624 NaN5 0.3867616 -0.1659267 -0.6011668 NaN9 0.09165510 -0.77360811 0.72302812 NaN13 -0.24101814 0.53450415 0.20014516 NaN17 0.03589918 -0.09147119 0.32854320 NaN21 -0.26149122 0.32679423 -0.903687dtype: float64

得出這個(gè)結(jié)果后,可以把結(jié)果作為一個(gè)新列添加到原表當(dāng)中,方便對(duì)比查看:

data["growth rate"]=round(s,4)data.head(10) #由于數(shù)據(jù)集比較長(zhǎng),只查看前十行

輸出結(jié)果:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

另一個(gè)常用參數(shù)periods

官方文檔中對(duì)這個(gè)參數(shù)的解釋是這樣的:形成百分比變化所需的時(shí)間。用直白的話解釋就是進(jìn)行環(huán)比運(yùn)算的周期,比如上邊所有的計(jì)算都是下一個(gè)周期和上一個(gè)周期進(jìn)行的環(huán)比增長(zhǎng),也可計(jì)算諸如第三期與第一期相比的環(huán)比增長(zhǎng),只需要設(shè)置periods=2,就可以實(shí)現(xiàn)這樣的需求:

df1.pct_change(periods=2)#用第一個(gè)數(shù)據(jù)集為例,查看這個(gè)參數(shù)的效果

輸出結(jié)果:

 

python如何計(jì)算環(huán)比增長(zhǎng)率

 

關(guān)于上述計(jì)算的所有結(jié)果,感興趣的童鞋可以按照文章開頭的公式手工計(jì)算一下,看下和pct_change()計(jì)算的結(jié)果都是一樣的哦。

如何計(jì)算環(huán)比增長(zhǎng)率是不是已經(jīng)沒(méi)有什么問(wèn)題啦,YEAH!

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2025-02-24 11:13:27

2014-06-30 10:53:19

500強(qiáng)超級(jí)計(jì)算

2011-07-12 14:01:22

2011云計(jì)算峰會(huì)云計(jì)算市場(chǎng)

2012-03-06 09:19:28

云計(jì)算孫丕恕

2014-01-03 09:10:57

開發(fā)就業(yè)

2022-09-15 09:45:46

衛(wèi)星物聯(lián)網(wǎng)物聯(lián)網(wǎng)

2022-10-14 11:55:29

2011-03-28 17:30:47

Android應(yīng)用

2016-07-06 15:33:22

SDN

2020-08-13 14:49:35

網(wǎng)絡(luò)安全數(shù)據(jù)技術(shù)

2021-06-15 14:33:53

IDC

2011-06-02 08:27:02

光維光纖

2021-05-21 10:09:56

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2021-08-02 13:01:35

Chrombook平板電腦Canalys

2022-11-03 10:29:11

物聯(lián)網(wǎng)

2016-06-21 21:21:47

互聯(lián)網(wǎng)穿戴設(shè)備

2013-11-04 14:33:34

華為存儲(chǔ)收入增長(zhǎng)率

2024-03-04 14:46:07

邊緣計(jì)算邊緣安全

2022-10-27 09:25:51

物聯(lián)網(wǎng)物聯(lián)網(wǎng)市場(chǎng)

2011-02-11 21:14:33

JavaScriptPythonPHP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)