真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在Pandas中使用Shift函數(shù)-創(chuàng)新互聯(lián)

怎么在Pandas中使用Shift函數(shù)?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)公司主營天河網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app開發(fā)定制,天河h5微信平臺小程序開發(fā)搭建,天河網(wǎng)站營銷推廣歡迎天河等地區(qū)企業(yè)咨詢

Pandas Shift函數(shù)基礎(chǔ)

>>> import pandas
>>> help(pandas.DataFrame.shift)
Help on function shift in module pandas.core.frame:
 
shift(self, periods=1, freq=None, axis=0)
 Shift index by desired number of periods with an optional time freq
 
 Parameters
 ----------
 periods : int
 Number of periods to move, can be positive or negative
 freq : DateOffset, timedelta, or time rule string, optional
 Increment to use from the tseries module or time rule (e.g. 'EOM').
 See Notes.
 axis : {0 or 'index', 1 or 'columns'}
 
 Notes
 -----
 If freq is specified then the index values are shifted but the data
 is not realigned. That is, use freq if you would like to extend the
 index when shifting and preserve the original data.
 
 Returns
 -------
 shifted : DataFrame

該函數(shù)主要的功能就是使數(shù)據(jù)框中的數(shù)據(jù)移動,若freq=None時,根據(jù)axis的設(shè)置,行索引數(shù)據(jù)保持不變,列索引數(shù)據(jù)可以在行上上下移動或在列上左右移動;若行索引為時間序列,則可以設(shè)置freq參數(shù),根據(jù)periods和freq參數(shù)值組合,使行索引每次發(fā)生periods*freq偏移量滾動,列索引數(shù)據(jù)不會移動。

參數(shù)詳解:

  • period:表示移動的幅度,可以是正數(shù),也可以是負(fù)數(shù),默認(rèn)值是1,1就表示移動一次,注意這里移動的都是數(shù)據(jù),而索引是不移動的,移動之后沒有對應(yīng)值的,就賦值為NaN。

  • freq: DateOffset, timedelta, or time rule string,可選參數(shù),默認(rèn)值為None,只適用于時間序列,如果這個參數(shù)存在,那么會按照參數(shù)值移動時間索引,而數(shù)據(jù)值沒有發(fā)生變化。

  • axis: {0, 1, ‘index', ‘columns'},表示移動的方向,如果是0或者'index'表示上下移動,如果是1或者'columns',則會左右移動。

先來看一下一些簡單的示例:

1、非時間索引下period的設(shè)置

假設(shè)存在一個DataFrame數(shù)據(jù)df:

index value1
A 0
B 1
C 2
D 3

如果執(zhí)行以下代碼  df.shift()  就會變成如下:

index value1
A NaN
B 0
C 1
D 2

執(zhí)行 df.shift(2) 就會得到:

index value1
A NaN
B NaN
C 0
D 1

執(zhí)行 df.shift(-1) 會得到:

index value1
A 1
B 2
C 3
D NaN

注意,shift移動的是整個數(shù)據(jù),如果df有如下多列數(shù)據(jù):

 AA BB CC DD
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15

執(zhí)行 df.shift(2) 的數(shù)據(jù)為:

 AA BB CC DD
a NaN NaN NaN NaN
b NaN NaN NaN NaN
c 0.0 1.0 2.0 3.0
d 4.0 5.0 6.0 7.0

如果只想移動df中的某一列數(shù)據(jù),則需要這樣操作: df['DD']= df['DD'].shift(1)

執(zhí)行后的數(shù)據(jù)為:

 AA BB CC DD
a 0 1 2 NaN
b 4 5 6 NaN
c 8 9 10 11
d 12 13 14 15

2、時間索引下freq 參數(shù)設(shè)置

假設(shè)存在如下DataFrame的df:

df = pd.DataFrame(np.arange(16).reshape(4,4),columns=['AA','BB','CC','DD'],index =pd.date_range('2012-06-01','2012-06-04'))
   AA BB CC DD
2012-06-01 0 1 2 3
2012-06-02 4 5 6 7
2012-06-03 8 9 10 11
2012-06-04 12 13 14 15

執(zhí)行 df.shift(freq=datetime.timedelta(1))  后:

   AA BB CC DD
2012-06-02 0 1 2 3
2012-06-03 4 5 6 7
2012-06-04 8 9 10 11
2012-06-05 12 13 14 15

執(zhí)行 df.shift(freq=datetime.timedelta(-2)) 后:

   AA BB CC DD
2012-05-30 0 1 2 3
2012-05-31 4 5 6 7
2012-06-01 8 9 10 11
2012-06-02 12 13 14 15

可以看到索引直接變了。

3、axis軸向設(shè)置

df = pd.DataFrame(np.arange(16).reshape(4,4),columns=['AA','BB','CC','DD'],index =['a','b','c','d'])
 
df
Out[1]: 
 AA BB CC DD
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
#當(dāng)period為正時,默認(rèn)是axis = 0軸的設(shè)定,向下移動
df.shift(2)
Out[2]: 
 AA BB CC DD
a NaN NaN NaN NaN
b NaN NaN NaN NaN
c 0.0 1.0 2.0 3.0
d 4.0 5.0 6.0 7.0
#當(dāng)axis=1,沿水平方向進行移動,正數(shù)向右移,負(fù)數(shù)向左移
df.shift(2,axis = 1)
Out[3]: 
 AA BB CC DD
a NaN NaN 0.0 1.0
b NaN NaN 4.0 5.0
c NaN NaN 8.0 9.0
d NaN NaN 12.0 13.0
#當(dāng)period為負(fù)時,默認(rèn)是axis = 0軸的設(shè)定,向上移動
df.shift(-1)
Out[4]: 
  AA BB CC DD
a 4.0 5.0 6.0 7.0
b 8.0 9.0 10.0 11.0
c 12.0 13.0 14.0 15.0
d NaN NaN NaN NaN

pandas 中上下兩行相減(隔行相減) -- shift函數(shù)的使用

最近使用pandas處理數(shù)據(jù),需求是想相鄰兩行上下相減,查API發(fā)現(xiàn)shift函數(shù),很靈活,。你也可以隔任意行相減。

p['xx_1'] = p["xx"].shift(1)

上面得到的就是xx字段向下移動一行的結(jié)果,和之前相比向下移動一行,你可以設(shè)置為任意行,也可是向上向下

p['xx'] - p["xx_1"]

這就是前后兩行的差值,很方便,Pandas很強大

關(guān)于怎么在Pandas中使用Shift函數(shù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道了解更多相關(guān)知識。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁題目:怎么在Pandas中使用Shift函數(shù)-創(chuàng)新互聯(lián)
路徑分享:http://weahome.cn/article/cohiss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部