写点什么

python DataFrame 的 shift() 方法,从三流 Python 外包到秒杀阿里 P7,

作者:程序媛可鸥
  • 2022 年 3 月 21 日
  • 本文字数:1098 字

    阅读完需:约 4 分钟

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=['c



lose'])


print(df)


print("=========================================")


print(df.shift(periods=2, freq=datetime.timedelta(3)))


如图,索引列的时间序列数据滞后了 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)))


如图,索引列的时间序列数据前滞了 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)))

最后

?? 硬核资料:关注即可领取 PPT 模板、简历模板、行业经典书籍 PDF。

?? 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。

?? 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。

?? 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

用户头像

Python编程资料加Q群免费领取:419829237 2022.03.14 加入

还未添加个人简介

评论

发布
暂无评论
python DataFrame的shift()方法,从三流Python外包到秒杀阿里P7,_Python_程序媛可鸥_InfoQ写作平台