千家信息网

python DataFrame的shift()方法怎么使用

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"python DataFrame的shift()方法怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python DataFram
千家信息网最后更新 2025年01月18日python DataFrame的shift()方法怎么使用

本篇内容主要讲解"python DataFrame的shift()方法怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python DataFrame的shift()方法怎么使用"吧!

在python数据分析中,可以使用shift()方法对DataFrame对象的数据进行位置的前滞、后滞移动。

语法

DataFrame.shift(periods=1, freq=None, axis=0)

  • periods可以理解为移动幅度的次数,shift默认一次移动1个单位,也默认移动1次(periods默认为1),则移动的长度为1 * periods。

  • periods可以是正数,也可以是负数。负数表示前滞,正数表示后滞。

  • freq是一个可选参数,默认为None,可以设为一个timedelta对象。适用于索引为时间序列数据时。

  • freq为None时,移动的是其他数据的值,即移动periods*1个单位长度。

  • freq部位None时,移动的是时间序列索引的值,移动的长度为periods * freq个单位长度。

  • axis默认为0,表示对列操作。如果为行则表示对行操作。

移动滞后没有对应值的默认为NaN。

示例

period为正,无freq

import pandas as pdpd.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 pdpd.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 pdimport datetimepd.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)))

如图,索引列的时间序列数据滞后了6天。(二乘以三)

period为正,freq为负

import pandas as pdimport datetimepd.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)))

如图,索引列的时间序列数据前滞了9天(三乘以负三)

period为负,freq为负

import pandas as pdimport datetimepd.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)))

如图,索引列的时间序列数据滞后了9天(负三乘以负三)

到此,相信大家对"python DataFrame的shift()方法怎么使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

移动 数据 方法 序列 时间 时间序列 索引 长度 单位 如图 内容 对象 正数 负数 学习 实用 更深 位置 兴趣 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 无线网无法与服务器建立安全连接 常规网络技术网上价格 图书馆数据库使用申请模板 交易所软件开发 闵行区创新软件开发服务优势 论述网络安全的内容有哪些 华为ws832虚拟服务器 广州乐呗网络技术有限公司 邵阳市互联网科技公司 员工上班考勤系统数据库 服务器400是什么 录屏软件开发之bug修复 喀什linux服务器维保电话 梦幻手游不同服务器能捉鬼吗 清远软件开发公司电话 工商银行软件开发中心是总行 神通数据库删除表空间 统一软件开发过程 敏捷开发 怎么通过手机进入联机侠服务器 数据库线程安全问题 华为网络技术交换网络基础 宪法网络安全手抄报图片大全 如何自建公网服务器 网络安全立柱架梁 云丁网络技术有限公司上市 二广高速南阳服务器属几星级 网络安全的技术内容 普陀区市场软件开发代理商 王者荣耀官方服务器登录 软件开发毛利一般多少
0