千家信息网

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

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,本篇内容主要讲解"python DataFrame的shift()方法怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python DataFram
千家信息网最后更新 2025年02月24日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安全错误 数据库的锁怎样保障安全 呼呼代驾软件开发 新时达货梯主板数据服务器下载 计算机网络技术的专科学校山东 广东知否互联网科技有限公司 网络技术入门 百度云 茌平县森客网络技术有限公司 java与数据库结合 苹果微信多开软件开发 多个云服务器怎么批量管理 人大金仓数据库统一系统 清科集团数据库 福建本地软件开发成本价 公大网络安全与执法考研方向 关于网络安全法律相关资料 最好的软件开发公司排名 宁波慈溪市存储服务器 国产数据库上市龙头 查看服务器是否开启 长宁区参考数据库销售收费标准 sql数据库显示无法创建 服务器经常有广告弹出 软件开发开题报告范文 成利北京网络技术有限公司 方舟服务器怎么改地图 本地服务器云服务器互联互通 网络安全1126规定 国家网络安全实行什么样的 rsc是否是常见文摘数据库 华为服务器安装流程 孝感铭志网络技术有限公司
0