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爬虫实例爬取网站搞笑段子
Nov 08 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
python自动截取需要区域,进行图像识别的方法
May 17 Python
Python设计模式之策略模式实例详解
Jan 21 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 Python
python @classmethod 的使用场合详解
Aug 23 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
python从Oracle读取数据生成图表
Oct 14 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 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数组无限分级数据的层级化处理代码
2012/12/29 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
javascript 自定义事件初探
2009/08/21 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
JsChart组件使用详解
2018/03/04 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
python的中异常处理机制
2018/08/30 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
2013年研究生毕业感言
2014/02/06 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
创先争优活动个人总结
2015/03/04 职场文书
朋友离别感言
2015/08/04 职场文书
导游词之唐山景点
2019/12/18 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
mysq启动失败问题及场景分析
2021/07/15 MySQL
SpringRetry重试框架的具体使用
2021/07/25 Java/Android