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的教程-Windows
Jul 22 Python
Python环境搭建之OpenCV的步骤方法
Oct 20 Python
matplotlib绘制动画代码示例
Jan 02 Python
python @property的用法及含义全面解析
Feb 01 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
python的concat等多种用法详解
Nov 28 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
python 实现绘制整齐的表格
Nov 18 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
详解查看Python解释器路径的两种方式
Oct 15 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
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
实用函数4
2007/11/08 PHP
php与php MySQL 之间的关系
2009/07/17 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
Python操作MySQL简单实现方法
2015/01/26 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
django fernet fields字段加密实践详解
2019/08/12 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
高中生家长会演讲稿
2014/01/14 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
小学开学标语
2014/07/01 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
发布会邀请函
2015/01/31 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android
canvas 中如何实现物体的框选
2022/08/05 Javascript