亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Pandas Shift函數(shù)的基礎(chǔ)入門學(xué)習(xí)筆記

 更新時(shí)間:2018年11月16日 08:38:22   作者:標(biāo)點(diǎn)符  
shift函數(shù)是對(duì)數(shù)據(jù)進(jìn)行移動(dòng)的操作,下面這篇文章主要給大家介紹了關(guān)于Pandas Shift函數(shù)的基礎(chǔ)入門學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

在使用Pandas的過程中,有時(shí)會(huì)遇到shift函數(shù),今天就一起來徹底學(xué)習(xí)下。先來看看幫助文檔是怎么說的:

>>> 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ù)移動(dòng),若freq=None時(shí),根據(jù)axis的設(shè)置,行索引數(shù)據(jù)保持不變,列索引數(shù)據(jù)可以在行上上下移動(dòng)或在列上左右移動(dòng);若行索引為時(shí)間序列,則可以設(shè)置freq參數(shù),根據(jù)periods和freq參數(shù)值組合,使行索引每次發(fā)生periods*freq偏移量滾動(dòng),列索引數(shù)據(jù)不會(huì)移動(dòng)。

參數(shù)詳解:

  • period:表示移動(dòng)的幅度,可以是正數(shù),也可以是負(fù)數(shù),默認(rèn)值是1,1就表示移動(dòng)一次,注意這里移動(dòng)的都是數(shù)據(jù),而索引是不移動(dòng)的,移動(dòng)之后沒有對(duì)應(yīng)值的,就賦值為NaN。
  • freq: DateOffset, timedelta, or time rule string,可選參數(shù),默認(rèn)值為None,只適用于時(shí)間序列,如果這個(gè)參數(shù)存在,那么會(huì)按照參數(shù)值移動(dòng)時(shí)間索引,而數(shù)據(jù)值沒有發(fā)生變化。
  • axis: {0, 1, ‘index', ‘columns'},表示移動(dòng)的方向,如果是0或者'index'表示上下移動(dòng),如果是1或者'columns',則會(huì)左右移動(dòng)。

先來看一下一些簡(jiǎn)單的示例:

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

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

index value1
A 0
B 1
C 2
D 3

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

index value1
A NaN
B 0
C 1
D 2

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

index value1
A NaN
B NaN
C 0
D 1

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

index value1
A 1
B 2
C 3
D NaN

注意,shift移動(dòng)的是整個(gè)數(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

如果只想移動(dòng)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、時(shí)間索引下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為正時(shí),默認(rèn)是axis = 0軸的設(shè)定,向下移動(dòng)
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,沿水平方向進(jìn)行移動(dòng),正數(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ù)時(shí),默認(rèn)是axis = 0軸的設(shè)定,向上移動(dòng)
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字段向下移動(dòng)一行的結(jié)果,和之前相比向下移動(dòng)一行,你可以設(shè)置為任意行,也可是向上向下

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

這就是前后兩行的差值,很方便,Pandas很強(qiáng)大

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • python實(shí)現(xiàn)柵欄加解密 支持密鑰加密

    python實(shí)現(xiàn)柵欄加解密 支持密鑰加密

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)柵欄加解密,支持密鑰加密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python 將字符串轉(zhuǎn)換為列表的7種方法匯總

    Python 將字符串轉(zhuǎn)換為列表的7種方法匯總

    這篇文章主要介紹了Python 將字符串轉(zhuǎn)換為列表的7種方法匯總,在本文中,我們將嘗試將給定的字符串轉(zhuǎn)換為列表,其中根據(jù)用戶的選擇,遇到空格或任何其他特殊字符,為此,我們?cè)趕tring中使用split()方法,需要的朋友可以參考下
    2023-11-11
  • Python冒泡排序注意要點(diǎn)實(shí)例詳解

    Python冒泡排序注意要點(diǎn)實(shí)例詳解

    本文給大家介紹了python冒泡排序知識(shí),涉及到冒泡排序主要的細(xì)節(jié)問題,本文通過實(shí)例代碼給大家講解,介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-09-09
  • Pytest參數(shù)化parametrize使用代碼實(shí)例

    Pytest參數(shù)化parametrize使用代碼實(shí)例

    這篇文章主要介紹了Pytest參數(shù)化parametrize使用代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 使用python?matplotlib?contour畫等高線圖的詳細(xì)過程講解

    使用python?matplotlib?contour畫等高線圖的詳細(xì)過程講解

    最近學(xué)習(xí)了matplotlib中的高線圖的繪制,所以下面這篇文章主要給大家介紹了關(guān)于使用python?matplotlib?contour畫等高線圖的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法

    實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法

    SocketServer模塊中帶有很多實(shí)現(xiàn)服務(wù)器所能夠用到的socket類和操作方法,下面我們就來以實(shí)例講解Python中SocketServer模塊處理網(wǎng)絡(luò)請(qǐng)求的用法:
    2016-06-06
  • 解決Django Static內(nèi)容不能加載顯示的問題

    解決Django Static內(nèi)容不能加載顯示的問題

    今天小編就為大家分享一篇解決Django Static內(nèi)容不能加載顯示的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python 字符串split的用法分享

    python 字符串split的用法分享

    python 字符串的split方法是用的頻率還是比較多的。比如我們需要存儲(chǔ)一個(gè)很長的數(shù)據(jù),并且按照有結(jié)構(gòu)的方法存儲(chǔ),方便以后取數(shù)據(jù)進(jìn)行處理。當(dāng)然可以用json的形式。但是也可以把數(shù)據(jù)存儲(chǔ)到一個(gè)字段里面,然后有某種標(biāo)示符來分割
    2013-03-03
  • 詳解Python 實(shí)現(xiàn) ZeroMQ 的三種基本工作模式

    詳解Python 實(shí)現(xiàn) ZeroMQ 的三種基本工作模式

    ZMQ是一個(gè)簡(jiǎn)單好用的傳輸層,像框架一樣的一個(gè) socket library,他使得 Socket 編程更加簡(jiǎn)單、簡(jiǎn)潔和性能更高。 ,這篇文章主要介紹了Python 實(shí)現(xiàn) ZeroMQ 的三種基本工作模式,需要的朋友可以參考下
    2020-03-03
  • 淺談python裝飾器探究與參數(shù)的領(lǐng)取

    淺談python裝飾器探究與參數(shù)的領(lǐng)取

    下面小編就為大家分享一篇淺談python裝飾器探究與參數(shù)的領(lǐng)取,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評(píng)論