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 切片和range()用法说明
Mar 24 Python
Python操作MySQL简单实现方法
Jan 26 Python
python使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
python编写爬虫小程序
May 14 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python和Go语言的区别总结
Feb 20 Python
python实现爬山算法的思路详解
Apr 09 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
python实现学生成绩测评系统
Jun 22 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对称加密函数实现数据的加密解密
2016/10/27 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
js实现漫天星星效果
2017/01/19 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
python实现黑客字幕雨效果
2018/06/21 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
PyTorch中permute的用法详解
2019/12/30 Python
python圣诞树编写实例详解
2020/02/13 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
中班幼儿评语大全
2014/04/30 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书