python对列进行平移变换的方法(shift)

 更新时间:2019年01月10日 15:53:09   作者:芒萝  
今天小编就为大家分享一篇python对列进行平移变换的方法(shift),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在进行数据操作时, 经常会碰到基于同一列进行错位相加减的操作, 即对某一列进行向上或向下平移(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实现倒计时工具

    这篇文章主要为大家详细介绍了基于Python实现倒计时工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 使用Python编制一个批处理文件管理器

    使用Python编制一个批处理文件管理器

    在软件开发和系统管理中,批处理文件(.bat)是一种常见且有用的工具,它们可以自动化重复性任务,简化复杂的操作流程,今天,我们将探讨如何使用Python和wxPython创建一个图形用户界面(GUI)应用程序来管理和执行批处理文件,需要的朋友可以参考下
    2025-01-01
  • Django实现发送邮件找回密码功能

    Django实现发送邮件找回密码功能

    在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能,需要的朋友可以参考下
    2019-08-08
  • 如何用python插入独创性声明

    如何用python插入独创性声明

    这篇文章主要介绍了如何用python插入独创性声明,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • 收集的几个Python小技巧分享

    收集的几个Python小技巧分享

    这篇文章主要介绍了收集的几个Python小技巧分享,如获得当前机器的名字、获取当前工作路径、获取系统的临时目录等,需要的朋友可以参考下
    2014-11-11
  • Python装饰器的函数式编程详解

    Python装饰器的函数式编程详解

    本文向大家详细介绍了Python装饰器的函数式编程的相关资料,需要的朋友可以参考下
    2015-02-02
  • Python实现国外赌场热门游戏Craps(双骰子)

    Python实现国外赌场热门游戏Craps(双骰子)

    这篇文章主要介绍了Python实现国外赌场热门游戏Craps(双骰子)的源码及运行方法,十分简单,有需要的小伙伴可以参考下。
    2015-03-03
  • python网络爬虫学习笔记(1)

    python网络爬虫学习笔记(1)

    这篇文章主要为大家详细介绍了python网络爬虫学习笔记的第一篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python使用numpy寻找二维数组的最值及其下标方法分析

    python使用numpy寻找二维数组的最值及其下标方法分析

    这篇文章主要为大家介绍了python使用numpy寻找二维数组的最值及其下标实现方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • pytorch 实现在预训练模型的 input上增减通道

    pytorch 实现在预训练模型的 input上增减通道

    今天小编就为大家分享一篇pytorch 实现在预训练模型的 input上增减通道,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论