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中enumerate函数遍历元素用法分析
Mar 11 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
利用Python如何生成便签图片详解
Jul 09 Python
Python 实现Windows开机运行某软件的方法
Oct 14 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 Python
快速排序的四种python实现(推荐)
Apr 03 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
Feb 25 Python
MATLAB数学建模之画图汇总
Jul 16 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 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桌面中心(二) 数据库写入
2007/03/11 PHP
php实现图片缩放功能类
2013/12/18 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
PHP文件与目录操作示例
2016/12/24 PHP
js模拟滚动条(横向竖向)
2013/02/22 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
Javascript基础教程之数组 array
2015/01/18 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
在Python中使用HTML模版的教程
2015/04/29 Python
Python3处理HTTP请求的实例
2018/05/10 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python地震数据可视化详解
2019/06/18 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
出国导师推荐信
2014/01/16 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
消防先进事迹材料
2014/02/10 职场文书
辩论赛主持词
2014/03/18 职场文书
环保倡议书100字
2014/05/15 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
加入学生会自荐书
2015/03/05 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
JavaScript实例 ODO List分析
2022/01/22 Javascript