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

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)。

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

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é)

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

相關(guān)文章

  • python出現(xiàn)

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

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

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

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

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

    這篇文章主要介紹了Python hashlib加密模塊常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    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ā)一個(gè)圖形界面工具,實(shí)現(xiàn)PPT圖片提取和九宮格合并功能,需要的可以參考下
    2024-12-12
  • 詳解Python如何實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)

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

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

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

    這篇文章主要介紹了Django REST framwork的權(quán)限驗(yàn)證實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    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?獲取今天任意時(shí)刻的時(shí)間戳的方法

    Python?獲取今天任意時(shí)刻的時(shí)間戳的方法

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

最新評(píng)論

温州市| 滦南县| 托克托县| 冷水江市| 满洲里市| 张家口市| 老河口市| 芮城县| 柘荣县| 从江县| 舒兰市| 邹平县| 钟祥市| 贵溪市| 惠州市| 老河口市| 浦江县| 方城县| 鸡东县| 隆子县| 水富县| 察隅县| 拉萨市| 焉耆| 临漳县| 慈溪市| 大石桥市| 灵武市| 开远市| 南靖县| 宁河县| 阜新| 噶尔县| 拜泉县| 金堂县| 三河市| 武穴市| 醴陵市| 澎湖县| 海安县| 英吉沙县|