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

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

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

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

在使用Pandas的過程中,有時會遇到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ù)移動,若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,沿水平方向進(jìn)行移動,正數(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很強(qiáng)大

總結(jié)

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

相關(guān)文章

  • python出現(xiàn)

    python出現(xiàn)"IndentationError: unexpected indent"錯誤解決辦法

    這篇文章主要介紹了python出現(xiàn)"IndentationError: unexpected indent"錯誤解決辦法的相關(guān)資料,希望通過本文能解決遇到這樣的問題,需要的朋友可以參考下
    2017-10-10
  • python實(shí)現(xiàn)名片管理系統(tǒng)

    python實(shí)現(xiàn)名片管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)名片管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python hashlib加密模塊常用方法解析

    Python hashlib加密模塊常用方法解析

    這篇文章主要介紹了Python hashlib加密模塊常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • windows下python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸示例

    windows下python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸示例

    這篇文章主要介紹了windows下python模擬鼠標(biāo)點(diǎn)擊和鍵盤輸示例,需要的朋友可以參考下
    2014-02-02
  • 基于Python開發(fā)PPT圖片提取與合并工具

    基于Python開發(fā)PPT圖片提取與合并工具

    在日常工作中,我們經(jīng)常需要處理PPT中的圖片,本文將介紹如何使用Python開發(fā)一個圖形界面工具,實(shí)現(xiàn)PPT圖片提取和九宮格合并功能,需要的可以參考下
    2024-12-12
  • 詳解Python如何實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)

    詳解Python如何實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)

    當(dāng)數(shù)據(jù)量大的時候,自然而然想到的就是對數(shù)據(jù)進(jìn)行壓縮,這篇文章主要為大家介紹了Python可以實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)的相關(guān)模塊的使用,希望對大家有所幫助
    2024-02-02
  • Django REST framwork的權(quán)限驗證實(shí)例

    Django REST framwork的權(quán)限驗證實(shí)例

    這篇文章主要介紹了Django REST framwork的權(quán)限驗證實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 使用Kivy將python程序打包為apk文件

    使用Kivy將python程序打包為apk文件

    本文給大家分享的是使用Kivy將python程序打包為apk文件的方法,包括安裝步驟及相關(guān)代碼,有需要的小伙伴可以參考下
    2017-07-07
  • python pandas詳細(xì)用法指南(推薦)

    python pandas詳細(xì)用法指南(推薦)

    這篇文章主要介紹了Python中pandas庫中Series和DataFrame數(shù)據(jù)結(jié)構(gòu)的基本定義、讀取和保存文件的方法、數(shù)據(jù)的基本操作和數(shù)據(jù)分析技巧,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Python?獲取今天任意時刻的時間戳的方法

    Python?獲取今天任意時刻的時間戳的方法

    本文主要介紹了Python?獲取今天任意時刻的時間戳的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06

最新評論

内江市| 长治市| 丹棱县| 玉门市| 宁城县| 尼勒克县| 吉林省| 五寨县| 浙江省| 丹巴县| 驻马店市| 姚安县| 神池县| 和静县| 沙田区| 张家港市| 大悟县| 延津县| 新田县| 武川县| 江油市| 积石山| 宝山区| 通榆县| 尚志市| 肇州县| 凌海市| 渝中区| 蒙山县| 岗巴县| 南宫市| 巴里| 海南省| 军事| 鹤山市| 密山市| 邯郸市| 开原市| 垦利县| 闸北区| 南安市|