python对列进行平移变换的方法(shift)


Posted in Python onJanuary 10, 2019

在进行数据操作时, 经常会碰到基于同一列进行错位相加减的操作, 即对某一列进行向上或向下平移(shift).

往常, 我们都会使用循环进行操作, 但经过查阅相关资料, 发现结合pandas里的groupby和shift两个函数就能轻松实现上述要求.

#创建样例数据
temp = pd.DataFrame({'id':[1,1,1,2,2,3],'value':[1,2,3,4,5,6]});temp
Out[1]:
  id value
0  1   1
1  1   2
2  1   3
3  2   4
4  2   5
5  3   6
temp['value_shift'] = temp.groupby('id')['value'].shift(1);temp
Out[180]: 
  id value value_shift
0  1   1     NaN
1  1   2     1.0
2  1   3     2.0
3  2   4     NaN
4  2   5     4.0
5  3   6     NaN

temp['value_shift_1'] = temp.groupby('id')['value'].shift(-1);temp
Out[181]: 
  id value value_shift value_shift_1
0  1   1     NaN      2.0
1  1   2     1.0      3.0
2  1   3     2.0      NaN
3  2   4     NaN      5.0
4  2   5     4.0      NaN
5  3   6     NaN      NaN

通过shift函数里面的值来控制向前还是向后偏移, 缺少的值会填充NaN.

groupby函数里的参数控制基于什么字段进行shift.

官方文档 这里是以index为基准.

以上这篇python对列进行平移变换的方法(shift)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习资料
Feb 08 Python
python k-近邻算法实例分享
Jun 11 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
python解析json串与正则匹配对比方法
Dec 20 Python
python opencv实现图像边缘检测
Apr 29 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
Django+Celery实现定时任务的示例
Jun 23 Python
对python模块中多个类的用法详解
Jan 10 #Python
python 图像平移和旋转的实例
Jan 10 #Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 #Python
详解pandas安装若干异常及解决方案总结
Jan 10 #Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 #Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 #Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 #Python
You might like
十天学会php之第一天
2006/10/09 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
PHP学习记录之数组函数
2018/06/01 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
2018/04/28 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
js实现微信聊天效果
2020/08/09 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
pyside写ui界面入门示例
2014/01/22 Python
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
迪奥美国官网:Dior美国
2019/12/07 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
师范生实习自我鉴定
2013/11/01 职场文书
保护环境的标语
2014/06/09 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
催款函范本大全
2015/06/24 职场文书
数据库连接池
2021/04/06 MySQL
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS