python?DataFrame的shift()方法的使用
在python數(shù)據(jù)分析中,可以使用shift()方法對(duì)DataFrame對(duì)象的數(shù)據(jù)進(jìn)行位置的前滯、后滯移動(dòng)。
語法
DataFrame.shift(periods=1, freq=None, axis=0)
- periods可以理解為移動(dòng)幅度的次數(shù),shift默認(rèn)一次移動(dòng)1個(gè)單位,也默認(rèn)移動(dòng)1次(periods默認(rèn)為1),則移動(dòng)的長度為1 * periods。
- periods可以是正數(shù),也可以是負(fù)數(shù)。負(fù)數(shù)表示前滯,正數(shù)表示后滯。
- freq是一個(gè)可選參數(shù),默認(rèn)為None,可以設(shè)為一個(gè)timedelta對(duì)象。適用于索引為時(shí)間序列數(shù)據(jù)時(shí)。
- freq為None時(shí),移動(dòng)的是其他數(shù)據(jù)的值,即移動(dòng)periods*1個(gè)單位長度。
- freq部位None時(shí),移動(dòng)的是時(shí)間序列索引的值,移動(dòng)的長度為periods * freq個(gè)單位長度。
- axis默認(rèn)為0,表示對(duì)列操作。如果為行則表示對(duì)行操作。
移動(dòng)滯后沒有對(duì)應(yīng)值的默認(rèn)為NaN。
示例
period為正,無freq
import pandas as pd pd.set_option('display.unicode.east_asian_width', True) data = [51.0, 52.33, 51.21, 54.23, 56.78] index = ['2022-2-28', '2022-3-1', '2022-3-2', '2022-3-3', '2022-3-4'] df = pd.DataFrame(data=data, index=index, columns=['close']) df.index.name = 'date' print(df) print("=========================================") df['昨收'] = df['close'].shift() df['change'] = df['close'] - df['close'].shift() print(df)
period為負(fù),無freq
import pandas as pd pd.set_option('display.unicode.east_asian_width', True) data = [51.0, 52.33, 51.21, 54.23, 56.78] index = ['2022-2-28', '2022-3-1', '2022-3-2', '2022-3-3', '2022-3-4'] index = pd.to_datetime(index) index.name = 'date' df = pd.DataFrame(data=data, index=index, columns=['昨收']) print(df) print("=========================================") df['close'] = df['昨收'].shift(-1) df['change'] = df['昨收'].shift(-1) - df['close'] print(df)
period為正,freq為正
import pandas as pd import datetime pd.set_option('display.unicode.east_asian_width', True) data = [51.0, 52.33, 51.21, 54.23, 56.78] index = ['2022-2-28', '2022-3-1', '2022-3-2', '2022-3-3', '2022-3-4'] index = pd.to_datetime(index) index.name = 'date' df = pd.DataFrame(data=data, index=index, columns=['close']) print(df) print("=========================================") print(df.shift(periods=2, freq=datetime.timedelta(3)))
如圖,索引列的時(shí)間序列數(shù)據(jù)滯后了6天。(二乘以三)
period為正,freq為負(fù)
import pandas as pd import datetime pd.set_option('display.unicode.east_asian_width', True) data = [51.0, 52.33, 51.21, 54.23, 56.78] index = ['2022-2-28', '2022-3-1', '2022-3-2', '2022-3-3', '2022-3-4'] index = pd.to_datetime(index) index.name = 'date' df = pd.DataFrame(data=data, index=index, columns=['close']) print(df) print("=========================================") print(df.shift(periods=3, freq=datetime.timedelta(-3)))
如圖,索引列的時(shí)間序列數(shù)據(jù)前滯了9天(三乘以負(fù)三)
period為負(fù),freq為負(fù)
import pandas as pd import datetime pd.set_option('display.unicode.east_asian_width', True) data = [51.0, 52.33, 51.21, 54.23, 56.78] index = ['2022-2-28', '2022-3-1', '2022-3-2', '2022-3-3', '2022-3-4'] index = pd.to_datetime(index) index.name = 'date' df = pd.DataFrame(data=data, index=index, columns=['close']) print(df) print("=========================================") print(df.shift(periods=-3, freq=datetime.timedelta(-3)))
如圖,索引列的時(shí)間序列數(shù)據(jù)滯后了9天(負(fù)三乘以負(fù)三)
到此這篇關(guān)于python DataFrame的shift()方法的使用的文章就介紹到這了,更多相關(guān)python DataFrame shift() 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中if elif else及縮進(jìn)的使用簡(jiǎn)述
這篇文章主要介紹了Python中if elif else及縮進(jìn)的使用,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05Python實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)自動(dòng)發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12零基礎(chǔ)寫python爬蟲之使用Scrapy框架編寫爬蟲
前面的文章我們介紹了Python爬蟲框架Scrapy的安裝與配置等基本資料,本文我們就來看看如何使用Scrapy框架方便快捷的抓取一個(gè)網(wǎng)站的內(nèi)容,隨便選個(gè)小站(dmoz.org)來示例吧2014-11-11Python3.9環(huán)境搭建RobotFramework的詳細(xì)過程
Robot Framework是一個(gè)基于Python的,可擴(kuò)展的關(guān)鍵字驅(qū)動(dòng)的測(cè)試自動(dòng)化框架,用于端到端驗(yàn)收測(cè)試和驗(yàn)收測(cè)試驅(qū)動(dòng)開發(fā)(ATDD),這篇文章主要介紹了Python3.9環(huán)境搭建RobotFramework的詳細(xì)過程,需要的朋友可以參考下2023-01-01python互斥鎖、加鎖、同步機(jī)制、異步通信知識(shí)總結(jié)
本篇文章給大家詳細(xì)講述了python互斥鎖、加鎖、同步機(jī)制、異步通信相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友收藏下。2018-02-02python實(shí)現(xiàn)視頻讀取和轉(zhuǎn)化圖片
今天小編就為大家分享一篇python實(shí)現(xiàn)視頻讀取和轉(zhuǎn)化圖片,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12基于Pytorch實(shí)現(xiàn)的聲音分類實(shí)例代碼
聲音分類是音頻深度學(xué)習(xí)中應(yīng)用最廣泛的方法之一,下面這篇文章主要給大家介紹了如何基于Pytorch實(shí)現(xiàn)聲音分類的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06教你用一行Python代碼實(shí)現(xiàn)GUI圖形界面
這篇文章主要介紹了教你用一行Python代碼實(shí)現(xiàn)GUI圖形界面,通過使用PySimpleGUI的popup_get_folder()方法,一行代碼就能實(shí)現(xiàn)選擇文件夾的操作,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01python學(xué)習(xí)筆記--將python源文件打包成exe文件(pyinstaller)
這篇文章主要介紹了通過將pyinstallerpython源文件打包成exe文件的方法,需要的朋友可以參考下2018-05-05