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 DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
python实现音乐下载的统计
Jun 20 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
Python版中国省市经纬度
Feb 11 Python
Python sep参数使用方法详解
Feb 12 Python
pycharm安装及如何导入numpy
Apr 03 Python
Python接口测试结果集实现封装比较
May 01 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
python中wheel的用法整理
Jun 15 Python
python如何用matplotlib创建三维图表
Jan 26 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
讲解python参数和作用域的使用
2013/11/01 Python
web.py中调用文件夹内模板的方法
2014/08/26 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
关键在于落实心得体会
2014/09/03 职场文书
干部作风建设心得体会
2014/10/22 职场文书
如何书写邀请函?
2019/06/24 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫
MySQL学习之基础操作总结
2022/03/19 MySQL
你真的会用Mysql的explain吗
2022/03/31 MySQL
德生BCL3000抢先使用感受和评价
2022/04/07 无线电
MySQL池化框架学习接池自定义
2022/07/23 MySQL