網(wǎng)站首頁 編程語言 正文
在python數(shù)據(jù)分析中,可以使用shift()方法對DataFrame對象的數(shù)據(jù)進行位置的前滯、后滯移動。
語法
DataFrame.shift(periods=1, freq=None, axis=0)
- periods可以理解為移動幅度的次數(shù),shift默認一次移動1個單位,也默認移動1次(periods默認為1),則移動的長度為1 * periods。
- periods可以是正數(shù),也可以是負數(shù)。負數(shù)表示前滯,正數(shù)表示后滯。
- freq是一個可選參數(shù),默認為None,可以設(shè)為一個timedelta對象。適用于索引為時間序列數(shù)據(jù)時。
- freq為None時,移動的是其他數(shù)據(jù)的值,即移動periods*1個單位長度。
- freq部位None時,移動的是時間序列索引的值,移動的長度為periods * freq個單位長度。
- axis默認為0,表示對列操作。如果為行則表示對行操作。
移動滯后沒有對應(yīng)值的默認為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為負,無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ù)據(jù)滯后了6天。(二乘以三)
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=3, freq=datetime.timedelta(-3)))
如圖,索引列的時間序列數(shù)據(jù)前滯了9天(三乘以負三)
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=-3, freq=datetime.timedelta(-3)))
如圖,索引列的時間序列數(shù)據(jù)滯后了9天(負三乘以負三)
原文鏈接:https://blog.csdn.net/weixin_48964486/article/details/123346341
相關(guān)推薦
- 2021-12-12 簡單介紹三層架構(gòu)工作原理_C#教程
- 2024-03-01 【uniapp】uniapp中刷新本頁面
- 2022-12-05 關(guān)于EF的Code?First的使用以及踩坑記錄_實用技巧
- 2022-10-14 nginx gzip 壓縮配置
- 2022-06-06 layui 日期格式不正確(date、datetime)區(qū)別
- 2022-12-23 解析ROC曲線繪制(python+sklearn+多分類)_python
- 2022-06-29 python人工智能tensorflow常用激活函數(shù)Activation?Functions_pyt
- 2023-05-29 批標準化層?tf.keras.layers.Batchnormalization()解析_pytho
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支