欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談pandas中shift和diff函數(shù)關(guān)系

 更新時(shí)間:2018年04月08日 10:18:51   作者:每天進(jìn)步一點(diǎn)點(diǎn)2017  
下面小編就為大家分享一篇淺談pandas中shift和diff函數(shù)關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

通過?pandas.DataFrame.shift命令查看幫助文檔

Signature: pandas.DataFrame.shift(self, periods=1, freq=None, axis=0) 
Docstring: 
Shift index by desired number of periods with an optional time freq 

該函數(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)

① 對(duì)于DataFrame的行索引是日期型,行索引發(fā)生移動(dòng),列索引數(shù)據(jù)不變

In [2]: import pandas as pd
  ...: import numpy as np
  ...: df = pd.DataFrame(np.arange(24).reshape(6,4),index=pd.date_range(start=
  ...: '20170101',periods=6),columns=['A','B','C','D'])
  ...: df
  ...:
Out[2]:
       A  B  C  D
2017-01-01  0  1  2  3
2017-01-02  4  5  6  7
2017-01-03  8  9 10 11
2017-01-04 12 13 14 15
2017-01-05 16 17 18 19
2017-01-06 20 21 22 23
In [3]: df.shift(2,axis=0,freq='2D')
Out[3]:
       A  B  C  D
2017-01-05  0  1  2  3
2017-01-06  4  5  6  7
2017-01-07  8  9 10 11
2017-01-08 12 13 14 15
2017-01-09 16 17 18 19
2017-01-10 20 21 22 23
In [4]: df.shift(2,axis=1,freq='2D')
Out[4]:
       A  B  C  D
2017-01-05  0  1  2  3
2017-01-06  4  5  6  7
2017-01-07  8  9 10 11
2017-01-08 12 13 14 15
2017-01-09 16 17 18 19
2017-01-10 20 21 22 23
In [5]: df.shift(2,freq='2D')
Out[5]:
       A  B  C  D
2017-01-05  0  1  2  3
2017-01-06  4  5  6  7
2017-01-07  8  9 10 11
2017-01-08 12 13 14 15
2017-01-09 16 17 18 19
2017-01-10 20 21 22 23

結(jié)論:對(duì)于時(shí)間索引而言,shift使時(shí)間索引發(fā)生移動(dòng),其他數(shù)據(jù)保存原樣,且axis設(shè)置沒有任何影響

② 對(duì)于DataFrame行索引為非時(shí)間序列,行索引數(shù)據(jù)保持不變,列索引數(shù)據(jù)發(fā)生移動(dòng)

In [6]: import pandas as pd
  ...: import numpy as np
  ...: df = pd.DataFrame(np.arange(24).reshape(6,4),index=['r1','r2','r3','r4'
  ...: ,'r5','r6'],columns=['A','B','C','D'])
  ...: df
  ...:
Out[6]:
   A  B  C  D
r1  0  1  2  3
r2  4  5  6  7
r3  8  9 10 11
r4 12 13 14 15
r5 16 17 18 19
r6 20 21 22 23
In [7]: df.shift(periods=2,axis=0)
Out[7]:
    A   B   C   D
r1  NaN  NaN  NaN  NaN
r2  NaN  NaN  NaN  NaN
r3  0.0  1.0  2.0  3.0
r4  4.0  5.0  6.0  7.0
r5  8.0  9.0 10.0 11.0
r6 12.0 13.0 14.0 15.0
In [8]: df.shift(periods=-2,axis=0)
Out[8]:
    A   B   C   D
r1  8.0  9.0 10.0 11.0
r2 12.0 13.0 14.0 15.0
r3 16.0 17.0 18.0 19.0
r4 20.0 21.0 22.0 23.0
r5  NaN  NaN  NaN  NaN
r6  NaN  NaN  NaN  NaN
In [9]: df.shift(periods=2,axis=1)
Out[9]:
   A  B   C   D
r1 NaN NaN  0.0  1.0
r2 NaN NaN  4.0  5.0
r3 NaN NaN  8.0  9.0
r4 NaN NaN 12.0 13.0
r5 NaN NaN 16.0 17.0
r6 NaN NaN 20.0 21.0
In [10]: df.shift(periods=-2,axis=1)
Out[10]:
    A   B  C  D
r1  2.0  3.0 NaN NaN
r2  6.0  7.0 NaN NaN
r3 10.0 11.0 NaN NaN
r4 14.0 15.0 NaN NaN
r5 18.0 19.0 NaN NaN
r6 22.0 23.0 NaN NaN

通過?pandas.DataFrame.diff命令查看幫助文檔,發(fā)現(xiàn)和shift函數(shù)形式一樣

Signature: pd.DataFrame.diff(self, periods=1, axis=0) 
Docstring: 
1st discrete difference of object 

下面看看diff函數(shù)和shift函數(shù)之間的關(guān)系

In [13]: df.diff(periods=2,axis=0)
Out[13]:
   A  B  C  D
r1 NaN NaN NaN NaN
r2 NaN NaN NaN NaN
r3 8.0 8.0 8.0 8.0
r4 8.0 8.0 8.0 8.0
r5 8.0 8.0 8.0 8.0
r6 8.0 8.0 8.0 8.0
In [14]: df -df.diff(periods=2,axis=0)
Out[14]:
    A   B   C   D
r1  NaN  NaN  NaN  NaN
r2  NaN  NaN  NaN  NaN
r3  0.0  1.0  2.0  3.0
r4  4.0  5.0  6.0  7.0
r5  8.0  9.0 10.0 11.0
r6 12.0 13.0 14.0 15.0
In [15]: df.shift(periods=2,axis=0)
Out[15]:
    A   B   C   D
r1  NaN  NaN  NaN  NaN
r2  NaN  NaN  NaN  NaN
r3  0.0  1.0  2.0  3.0
r4  4.0  5.0  6.0  7.0
r5  8.0  9.0 10.0 11.0
r6 12.0 13.0 14.0 15.0

以上這篇淺談pandas中shift和diff函數(shù)關(guān)系就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python中的type()方法的使用

    詳解Python中的type()方法的使用

    這篇文章主要介紹了詳解Python中的type()方法的使用,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python 8種必備的gui庫

    python 8種必備的gui庫

    這篇文章主要介紹了python 8種必備的gui庫,幫助大家更好的進(jìn)行python 開發(fā),感興趣的朋友可以了解下
    2020-08-08
  • 使用Python發(fā)送郵件附件以定時(shí)備份MySQL的教程

    使用Python發(fā)送郵件附件以定時(shí)備份MySQL的教程

    這篇文章主要介紹了使用Python發(fā)送郵件附件以定時(shí)備份MySQL的教程,本文的示例基于CentOS,需要的朋友可以參考下
    2015-04-04
  • python相似模塊用例

    python相似模塊用例

    這篇文章主要為大家詳細(xì)介紹了python相似模塊用例,感興趣的小伙伴們可以參考一下
    2016-03-03
  • python之如何進(jìn)行去重問題

    python之如何進(jìn)行去重問題

    這篇文章主要介紹了python之如何進(jìn)行去重問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python排序算法之冒泡排序

    Python排序算法之冒泡排序

    我們?cè)诰帉懘a時(shí),經(jīng)常需要對(duì)一些序列做一些排序,排序的方法很多,下面我們講一下常用的冒泡排序法。需要的朋友可以參考下
    2023-01-01
  • 簡(jiǎn)單了解Python中的幾種函數(shù)

    簡(jiǎn)單了解Python中的幾種函數(shù)

    這篇文章主要介紹了簡(jiǎn)單了解Python中的幾種函數(shù),具有一定參考價(jià)值。需要的朋友可以了解下。
    2017-11-11
  • Python使用百度API上傳文件到百度網(wǎng)盤代碼分享

    Python使用百度API上傳文件到百度網(wǎng)盤代碼分享

    這篇文章主要介紹了Python使用百度API上傳文件到百度網(wǎng)盤代碼分享,本文使用了一個(gè)第三方庫poster,在文中給出了鏈接,需要的朋友可以參考下
    2014-11-11
  • python中pynput庫的具體使用

    python中pynput庫的具體使用

    pynput是Python庫,支持跨平臺(tái)控制和監(jiān)聽鍵盤、鼠標(biāo)輸入,包含keyboard和mouse模塊,用于處理鍵盤事件和鼠標(biāo)事件,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-09-09
  • linux環(huán)境下python中MySQLdb模塊的安裝方法

    linux環(huán)境下python中MySQLdb模塊的安裝方法

    這篇文章主要給大家介紹了在linux環(huán)境下python中MySQLdb模塊的安裝方法,文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06

最新評(píng)論