Python机器学习小技巧:GroupBy 和 Shift实现 Pandas分组错位
使用Pandas进行数据操作的时候,有时需要分组将数据错位进行操作。
在数据分析中经常遇到需要分组使用a列的第n行数据与去b列的第n+1行数据进行对比或者计算的要求,下面是我使用pandas解决该问题的方法。首先要说的试这个问题可以通过操作Index来实现。不过Pandas针对这种情况已经提供了一种方法了,就是shift函数,用起来更加方便。shift函数定义如下:
pandas.DataFrame.shift
DataFrame.shift(self,periods=1,freq=None,axis=0,fill_value=None)[source]
Shift index by desired number of periods with an optional time freq.
When freq is not passed, shift the index without realigning the data. If freq is passed (in this case, the index must be date or datetime, or it will raise a NotImplementedError), the index will be increased using the periods and the freq.
比如我们要分析一个汽车的形式记录,需要对比每个位置的前一个点和后一个点的情况,如下代码即可:
df1['x_pre']=df1.groupby('CARID')['x'].shift(1)
df1['x_next']=df1.groupby('CARID')['x'].shift(-1)
df1['y_pre']=df1.groupby('CARID')['y'].shift(1)
df1['y_next']=df1.groupby('CARID')['y'].shift(-1)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java 数据持久化系列之 HikariCP (一)
在上一篇《Java 数据持久化系列之池化技术》中,我们了解了池化技术,并使用 Apache-common-Pool2 实现了一个简单连接池,实验对比了它和 HikariCP、Druid 等数据库连接池的性能数据。在性能方面,HikariCP遥遥领先,而且它还是 Spring Boot 2.0 默认的数据库连接池。下面我们就来了解一下这款明星级开源数据库连接池的实现。 本文的主要内容包括: HikariCP 简介,介绍它的特性和现况。 HikariCP 的配置项详解,分析部分配置的影响。 HikariCP 为什么这么快,介绍其优化点。 这里啰嗦两句,由于本系列会涉及很多开源项目,比如说 HikariCP、Druid、Mybatis等,所以简单聊一下我对学习开源项目的认识,这也是我自己行文或者组织系列文章顺序的思路,后续有时间再详细总结一下。 安装并检查提供的所有工具,比如 Redis 目录下的 redis-check-aof 等工具的作用,这些工具都是官方特意提供的,一般都是日常经常要使用的,了解其功能。 运行,学习所有配置项的功能,原理和优缺点,比如 Redis 的内存溢出控制策略 m...
- 下一篇
Python数据处理小技巧:pivot_table后如何拍平columns
机器学习的过程中很多时候需要用到类似透视表的功能。Pandas提供了pivot和pivot_table实现透视表功能。相对比而言,pivot_table更加强大,在实现透视表的时候可以进行聚类等操作。 pivot_table帮助地址: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html 官方给的几个例子: df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo", ... "bar", "bar", "bar", "bar"], ... "B": ["one", "one", "one", "two", "two", ... "one", "one", "two", "two"], ... "C": ["small", "large", "large", "small", ... "small", "large", "small", "small", ... "large"], ... "D": [1, 2, 2,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8编译安装MySQL8.0.19