Python教程:shift函数实现数据偏移的方法
一、背景
当需要统计不同周期的变化情况时,需要使用数据偏移,在 Python 中使用 shift 函数实现。
# 一阶差分
diff_num = num - num.shift(1)
二、实现
1.创建测试表
import pandas as pddic = {'id':[1,2,2,3,3,3],'num':[4,2,7,10,5,5] }data = pd.DataFrame(dic)
print(data)
--------------------------------id num
0 1 4
1 2 2
2 2 7
3 3 10
4 3 5
5 3 5
2.分析
- 新增一列存储每个id上一周期数量
- 将两列做差即可
3.shift函数
通过 shift 函数实现数据的上下偏移,使用语法:
df.shift(periods=1, freq=None, axis=0)
- periods 偏移的幅度(正值表示下、右编译,负值表示上、左偏移)
- freq 适用于时间索引的偏移 值不发生变化
- axis 轴向指定(axis=0表示纵向偏移,axis=1表示横向偏移,默认纵向)
4.实例
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 所有字段向下偏移一行
data.shift(1)
-----------------------id num
0 NaN NaN
1 1.0 4.0
2 2.0 2.0
3 2.0 7.0
4 3.0 10.0
5 3.0 5.0
------------------------# 所有字段向上偏移一行
data.shift(-1)
-----------------------id num
0 2.0 2.0
1 2.0 7.0
2 3.0 10.0
3 3.0 5.0
4 3.0 5.0
5 NaN NaN
---------------------# 所有字段向右偏移一列
data.shift(1, axis=1)
--------------------id num
0 NaN 1.0
1 NaN 2.0
2 NaN 2.0
3 NaN 3.0
4 NaN 3.0
5 NaN 3.0
-------------------
# 所有字段向左偏移一列
data.shift(-1, axis=1)
-------------------id num
0 4.0 NaN
1 2.0 NaN
2 7.0 NaN
3 10.0 NaN
4 5.0 NaN
5 5.0 NaN
----------------
# 全部偏移
data["last_num"] = data["num"]
data["last_num"] = data["last_num"].shift(1).fillna(0)
------------------------------id num last_num
0 1 4 0.0
1 2 2 4.0
2 2 7 2.0
3 3 10 7.0
4 3 5 10.0
5 3 5 5.0
----------------------------# 按id分组偏移
data["last_num"] = data.groupby("id")["num"].shift(1).fillna(0)
data["diff_num"] = data["num"] - data["last_num"]
---------------------------id num last_num diff_num
0 1 4 0.0 4.0
1 2 2 0.0 2.0
2 2 7 2.0 5.0
3 3 10 0.0 10.0
4 3 5 10.0 -5.0
5 3 5 5.0 0.0
结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!
Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1LL4y1h7ny?share_source=copy_web
Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1QZ4y1N7YA?share_source=copy_web
Python教程:shift函数实现数据偏移的方法相关推荐
- pandas使用shift函数对数数据进行向上偏移(-1)或者向下偏移(1)、索引不移动,移动之后无值的赋值为NaN、将原数据列与偏移后的数据列相加生成新的数据列
pandas使用shift函数对数数据进行向上偏移(-1)或者向下偏移(1).索引不移动,移动之后无值的赋值为NaN.将原数据列与偏移后的数据列相加生成新的数据列 目录
- 计算机函数涵义,Excel函数教程: 引用函数的含义和表示方法-excel技巧-电脑技巧收藏家...
Excel函数教程: 引用函数的含义和表示方法 Excel函数应用之逻辑函数 在介绍查询与引用函数之前,我们先来了解一下有关引用的知识. 1.引用的作用 在Excel中引用的作用在于标识工作表上的单元 ...
- java调用javascript函数_[Java教程]JavaScript函数的4种调用方法详解
[Java教程]JavaScript函数的4种调用方法详解 0 2016-08-09 00:00:12 在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C# ...
- Python内置函数—vars的具体使用方法
本文文章主要介绍了Python内置函数-vars的具体使用方法,分享给大家,具体如下: 英文文档: vars([object]) Return the dict attribute for a mod ...
- python中shift函数rolling_【邢不行|量化小讲堂系列18-Python量化入门】简易波动指标(EMV)策略实证...
引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. 个人微信:xingbuxing0807,有问题欢迎 ...
- python中shift函数rolling_Pandas Shift函数的基础入门学习笔记
pandas shift函数基础 在使用pandas的过程中,有时会遇到shift函数,今天就一起来彻底学习下.先来看看帮助文档是怎么说的: >>> import pandas &g ...
- Boost.Python教程:函数
在本章中,我们将更详细地介绍Boost.Python驱动的函数.我们将看到一些工具,可以将C ++函数暴露给Python,避免潜在的pifall,例如悬空指针和引用. 我们还将看到一些工具,使我们更容 ...
- python中shift函数_pandas DataFrame.shift()函数
pandas DataFrame.shift()函数可以把数据移动指定的位数 period参数指定移动的步幅,可以为正为负.axis指定移动的轴,1为行,0为列. eg: 有这样一个DataFrame ...
- Python内置函数的源码中方法只有pass占位符说明 Docs
pass python定义函数,必须有函数体,否则编译就会报错.函数体用一句pass占位是防止报错,并且不会有任何动作.内置函数中使用pass的情况如下: 父类中声明函数,但不声明实现,由继承的子类进 ...
最新文章
- json的序列化与反序列化
- tensorflow教程 一元线性回归
- Get Started Part 2
- K8S Learning(7)—— Deployment
- java公平索非公平锁_java中的非公平锁不怕有的线程一直得不到执行吗
- Python实现一个数组除以一个数
- mysql 5.5.35 单机多实例配置详解_基于mysql-5.5.32的单机多实例多配置文件的
- Oracle Tuning ( instance 级别 ) 01
- LeetCode 4Sum 4个数之和
- 蓝桥练习 之 单词个数统计
- jsp+servlet实现最基本的注册登陆功能
- c语言程序设计第三版何钦铭课后答案_C语言程序设计 (何钦铭 ) 高教版 第2版 课后习题答案.pdf...
- 反编译DLL。并且修改DLL内容
- python唯美壁纸_Python爬虫教程爬取5K分辨率超清唯美壁纸源码
- Exch:POP3 和 IMAP4 操作指南
- 互联网时代产品研发的思考
- 中国参与MOOC 建设的大学有多少所?
- 【解决】Initializing libiomp5md.dll, but found libiomp5md.dll already initialized. matplotlib.pylot 画图报错
- 夜莺日志采集mtail
- STM32启动文件startup_stm32f407xx.s