脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python DataFrame的shift()方法的使用

python DataFrame的shift()方法的使用

2022-10-29 12:05侯小啾 Python

在python数据分析中,可以使用shift()方法对DataFrame对象的数据进行位置的前滞、后滞移动,本文主要介绍了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 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)

python DataFrame的shift()方法的使用

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)

python DataFrame的shift()方法的使用

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)))

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

python DataFrame的shift()方法的使用

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)))

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

python DataFrame的shift()方法的使用

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)))

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

python DataFrame的shift()方法的使用

到此这篇关于python DataFrame的shift()方法的使用的文章就介绍到这了,更多相关python DataFrame shift() 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_48964486/article/details/123346341

延伸 · 阅读

精彩推荐
  • PythonPython生成器定义与简单用法实例分析

    Python生成器定义与简单用法实例分析

    这篇文章主要介绍了Python生成器定义与简单用法,结合实例形式较为详细的分析了Python生成器的概念、原理、使用方法及相关操作注意事项,需要的朋友可以...

    Tom文星5102021-02-08
  • Python在python带权重的列表中随机取值的方法

    在python带权重的列表中随机取值的方法

    今天小编就为大家分享一篇在python带权重的列表中随机取值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    江流静一11042021-05-21
  • PythonPython中的多行注释文档编写风格汇总

    Python中的多行注释文档编写风格汇总

    在Python中利用多行注释编写小型的程序文档说明非常方便,而约定俗成的格式也多种多样,这里我们就进行一下最常见的Python中的多行注释文档编写风格汇总...

    mattkang4982020-08-27
  • Python如何利用AJAX获取Django后端数据详解

    如何利用AJAX获取Django后端数据详解

    ajax一个前后台配合的技术,它可以让javascript发送http请求,与后台通信,获取数据和信息。下面这篇文章主要介绍了如何利用AJAX获取Django后端数据的相关资料...

    运维派10252021-11-21
  • PythonPython操作Redis之设置key的过期时间实例代码

    Python操作Redis之设置key的过期时间实例代码

    这篇文章主要介绍了Python操作Redis之设置key的过期时间实例代码,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    kwsy200816932021-01-09
  • Pythonpython中pandas.DataFrame排除特定行方法示例

    python中pandas.DataFrame排除特定行方法示例

    这篇文章主要给大家介绍了关于python中pandas.DataFrame排除特定行的方法,文中给出了详细的示例代码,相信对大家的理解和学习具有一定的参考价值,需要的...

    吴志9022020-09-23
  • Pythonpython pandas时序处理相关功能详解

    python pandas时序处理相关功能详解

    这篇文章主要介绍了python pandas时序处理相关功能详解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    ledao11422021-07-30
  • PythonPython中使用PDB库调试程序

    Python中使用PDB库调试程序

    这篇文章主要介绍了Python中使用PDB库调试程序,本文讲解了使用PDB的二种模式以及PDB模式下的常用调试命令,需要的朋友可以参考下 ...

    脚本之家7452020-05-29