pandas DataFrame.shift()函数的具体使用


Posted in Python onMay 24, 2021

pandas DataFrame.shift()函数可以把数据移动指定的位数

period参数指定移动的步幅,可以为正为负.axis指定移动的轴,1为行,0为列.

eg: 有这样一个DataFrame数据:

import pandas as pd
data1 = pd.DataFrame({
    'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    'b': [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
})
print data1

   a  b
0  0  9
1  1  8
2  2  7
3  3  6
4  4  5
5  5  4
6  6  3
7  7  2
8  8  1
9  9  0

如果想让 a和b的数据都往下移动一位:

data2 = data1.shift(axis=0)
print data2

     a    b
0  NaN  NaN
1  0.0  9.0
2  1.0  8.0
3  2.0  7.0
4  3.0  6.0
5  4.0  5.0
6  5.0  4.0
7  6.0  3.0
8  7.0  2.0
9  8.0  1.0

如果是在行上往右移动一位:

data3 = data1.shift(axis=1)
print data3

    a    b
0 NaN  0.0
1 NaN  1.0
2 NaN  2.0
3 NaN  3.0
4 NaN  4.0
5 NaN  5.0
6 NaN  6.0
7 NaN  7.0
8 NaN  8.0
9 NaN  9.0

如果想往上或者往左移动,可以指定(periods=-1):

data4 = data1.shift(periods=-1, axis=0)
print data4

     a    b
0  1.0  8.0
1  2.0  7.0
2  3.0  6.0
3  4.0  5.0
4  5.0  4.0
5  6.0  3.0
6  7.0  2.0
7  8.0  1.0
8  9.0  0.0
9  NaN  NaN

一个例子:

这里有一组某车站各个小时的总进站人数和总出站人数的数据:

entries_and_exits = pd.DataFrame({
    'ENTRIESn': [3144312, 3144335, 3144353, 3144424, 3144594,
                 3144808, 3144895, 3144905, 3144941, 3145094],
    'EXITSn': [1088151, 1088159, 1088177, 1088231, 1088275,
               1088317, 1088328, 1088331, 1088420, 1088753]
})

要求计算每个小时该车站进出站人数

思路: 把第n+1小时的总人数-第n小时的总人数,就是这个小时里的进出站人数

entries_and_exits_hourly = entries_and_exits - entries_and_exits.shift(axis=0)print(entries_and_exits_hourly.fillna(0))   #最后用0来填补NaN

   ENTRIESn  EXITSn
0       0.0     0.0
1      23.0     8.0
2      18.0    18.0
3      71.0    54.0
4     170.0    44.0
5     214.0    42.0
6      87.0    11.0
7      10.0     3.0
8      36.0    89.0
9     153.0   333.0

到此这篇关于pandas DataFrame.shift()函数的具体使用的文章就介绍到这了,更多相关pandas DataFrame.shift()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python Web服务器Tornado使用小结
May 06 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
小小聊天室Python代码实现
Aug 17 Python
python实现教务管理系统
Mar 12 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
对python文件读写的缓冲行为详解
Feb 13 Python
Python 旋转打印各种矩形的方法
Jul 09 Python
Python实现基于socket的udp传输与接收功能详解
Nov 15 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
python模块与C和C++动态库相互调用实现过程示例
Nov 02 Python
教你怎么用python实现字符串转日期
May 24 #Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
You might like
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
比较详细的关于javascript 解析json的代码
2009/12/16 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
python获取各操作系统硬件信息的方法
2015/06/03 Python
Python类的动态修改的实例方法
2017/03/24 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
Nginx的基本概念和原理
2022/03/21 Servers
Golang解析JSON对象
2022/04/30 Golang