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函数返回多个值的示例方法
Dec 04 Python
零基础写python爬虫之urllib2使用指南
Nov 05 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
Python 3中的yield from语法详解
Jan 18 Python
Python实现字典去除重复的方法示例
Jul 31 Python
python使用opencv按一定间隔截取视频帧
Mar 06 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
Python实现钉钉订阅消息功能
Jan 14 Python
使用Python将语音转换为文本的方法
Aug 10 Python
python 使用建议与技巧分享(四)
Aug 18 Python
python如何对链表操作
Oct 10 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 防注入函数(格式化数据)
2011/08/08 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
linux下编译安装memcached服务
2014/08/03 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
js Calender控件使用详解
2015/01/05 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
mac上node.js环境的安装测试
2017/07/03 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
Python入门篇之条件、循环
2014/10/17 Python
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python中的随机函数random的用法示例
2018/01/27 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
幼儿园大班家长评语
2014/04/17 职场文书
招标承诺书
2014/08/30 职场文书
2014年劳动部工作总结
2014/12/11 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
安全守法证明
2015/06/23 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书