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之import机制详解
Jul 03 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
Python实现字符串格式化的方法小结
Feb 20 Python
Python中的探索性数据分析(功能式)
Dec 22 Python
Python自定义线程池实现方法分析
Feb 07 Python
python正则实现提取电话功能
Feb 24 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
用Python shell简化开发
Aug 08 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
python 还原梯度下降算法实现一维线性回归
Oct 22 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 Python
分享7个 Python 实战项目练习
Mar 03 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分页思路以及在ZF中的使用
2012/05/30 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
jQuery图片缩放插件smartZoom使用实例详解
2017/08/25 jQuery
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
[01:20:06]TNC vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python缩进和冒号详解
2016/06/01 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
海蓝之谜(LA MER)澳大利亚官方商城:全球高端奢华护肤品牌
2017/10/27 全球购物
个人求职简历的自我评价范文
2013/10/09 职场文书
小学新学期教师寄语
2014/01/18 职场文书
《赶海》教学反思
2014/04/20 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
文明礼貌主题班会
2015/08/14 职场文书
Python实现天气查询软件
2021/06/07 Python
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL