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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Pandas Shift函数的基础入门学习笔记
Pandas Shift函数基础 在使用Pandas的过程中,有时会遇到shift函数,今天就一起来彻底学习下.先来看看帮助文档是怎么说的: >>> import pandas >>> help(pandas.DataFrame.shift) Help on function shift in module pandas.core.frame: shift(self, periods=1, freq=None, axis=0) Shift index by desire
-
python 图像平移和旋转的实例
如下所示: import cv2 import math import numpy as np def move(img): height, width, channels = img.shape emptyImage2 = img.copy() x=20 y=20 for i in range(height): for j in range(width): if i>=x and j>=y: emptyImage2[i,j]=img[i-x][j-y] else: emptyImage2[i
-
浅谈pandas中shift和diff函数关系
通过?pandas.DataFrame.shift命令查看帮助文档 Signature: pandas.DataFrame.shift(self, periods=1, freq=None, axis=0) Docstring: Shift index by desired number of periods with an optional time freq 该函数主要的功能就是使数据框中的数据移动,若freq=None时,根据axis的设置,行索引数据保持不变,列索引数据可以在行上上下移动
-
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
-
python查看列的唯一值方法
查看某一列中有多少中取值: 数据集名.drop_duplicates(['列名']) #实际为删除重复项,删除后对原数据集不修改 输入:data.drop_duplicates(['name']) 输出: 1 zhangsan 2 lisi 3 wangwu 以上这篇python查看列的唯一值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Python将DataFrame的某一列作为index的方法
下面代码实现了将df中的column列作为index df.set_index(["Column"], inplace=True) 以上这篇Python将DataFrame的某一列作为index的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 对Python中DataFrame按照行遍历的方法 使用DataFrame删除行和列的实例讲解 Python中的index()方法使用教程 Python中List.index()方法的使用
-
Python pandas 列转行操作详解(类似hive中explode方法)
最近在工作上用到Python的pandas库来处理excel文件,遇到列转行的问题.找了一番资料后成功了,记录一下. 1. 如果需要爆炸的只有一列: df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]}) df Out[1]: A B 0 1 [1, 2] 1 2 [1, 2] 如果要爆炸B这一列,可以直接用explode方法(前提是你的pandas的版本要高于或等于0.25) df.explode('B') A B 0 1 1 1 1 2 2 2 1 3
-
python中pandas库中DataFrame对行和列的操作使用方法示例
用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.arange(3.)) data = DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('wxyz')) data['w'] #选择表格中的'w'列,使用类字典属性,返回的是S
-
Python操作Excel插入删除行的方法
1. 前言 由于近期有任务需要,要写一个能够处理Excel的脚本,实现的功能是,在A表格上其中一列,对字符串进行分组和排序,然后根据排序好的A表格以固定格式自动填写到B表格上. 开始写脚本之前查了很多资料,最开始采用了openpyxl这个模块,用起来很顺手,使用这个对A表格其中一列进行了重新填写,但是后来发现,需要用到删除和插入空白行的操作,使用openpyxl比较困难,这个模块仅支持在表格的最后一行继续添加新行,不支持在中间插入和删除行. 在查找的过程中发现,网上流传了一些使用openpyxl
-
Python实现统计代码行的方法分析
本文实例讲述了Python实现统计代码行的方法.分享给大家供大家参考,具体如下: 参加光荣之路测试开发班已三月有余,吴总上课也总问" 咱们的课上了这么多次了大家实践了多少行代码了?".这里是一个一脸懵逼的表情.该怎么统计呢?一个个文件数当然不可取,能用代码解决的事咱们坚决不动手.最近在网上刷题时也正好遇到有这么一道题,所以决定撸一撸. 题目:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. 首先分析一下思路捋一下大象装冰箱的步骤,从一个给定
-
python模拟鼠标拖动操作的方法
本文实例讲述了python模拟鼠标拖动操作的方法.分享给大家供大家参考.具体如下: pdf中的书签只有页码,准备把现有书签拖到一个目录中,然后添加自己页签.重复的拖动工作实在无趣,还是让程序帮我实现吧,我可以喝点水,休息一下了 1. Python代码 复制代码 代码如下: # # _*_ coding:UTF-8 _*_ __author__ = 'wp' import win32api import win32con import win32gui from ctypes import * i
-
Python中shape计算矩阵的方法示例
本文实例讲述了Python中shape计算矩阵的方法.分享给大家供大家参考,具体如下: 看到机器学习算法时,注意到了shape计算矩阵的方法接下来就讲讲我的理解吧 >>> from numpy import * >>> import operator >>> a =mat([[1,2,3],[5,6,9]]) >>> a matrix([[1, 2, 3], [5, 6, 9]]) >>> shape(a) (2,
-
Python简单实现控制电脑的方法
本文实例讲述了Python简单实现控制电脑的方法.分享给大家供大家参考,具体如下: 1.windows 下,CMD的一些命令: dir:列出当前的所有文件 time:打印当前的时间 tree:列出当前目录下的子结构 在cmd中进入了某种模式,退出可以尝试以下命令:q .exit().Ctrl+c.Ctrl+z 运行程序:在cmd里面直接输入程序名称.如:notepad.calc 按tab键可以补全名字 在一个文件夹下,想快速打开cmd: 按住shift键,在鼠标点击右键,可以看见命令. 想在cm
随机推荐
- 未将对象引用设置到对象的实例 (System.NullReferenceException)
- PHP数据库操作Helper类完整实例
- Jquery多选下拉列表插件jquery multiselect功能介绍及使用
- Javascript中的迭代、归并方法详解
- c语言输出字符串中最大对称子串长度的3种解决方案
- asp.net中Datalist使用数字分页的实现方法
- PHP易混淆知识整理笔记
- php去除二维数组的重复项方法
- 取得表单提交的所有数据
- opencv 做人脸识别 opencv 人脸匹配分析
- 详解Linux Shell 实现一个获取任意位数的随机密码的脚本
- jquery之Document元素选择器篇
- Bootstrap笔记之缩略图、警告框实例详解
- Android编程绘制抛物线的方法示例
- C语言实现的猜拳游戏代码分享
- Python基础教程之内置函数locals()和globals()用法分析
- 基于Axios 常用的请求方法别名(详解)
- ASP.NET Core WebApi中使用FluentValidation验证数据模型的方法
- foreman ubuntu16 快速安装
- vue组件之间通信实例总结(点赞功能)