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显示天气预报
Mar 02 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
python yield和Generator函数用法详解
Feb 10 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
May 10 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
Python 图片添加美颜效果
Apr 28 Python
教你怎么用python实现字符串转日期
May 24 #Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
You might like
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
PHP面向对象概念
2011/11/06 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
关于JavaScript中的关联数组分析
2013/04/09 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
javascript中 try catch用法
2015/08/16 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
django中瀑布流写法实例代码
2019/10/14 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
新书吧创业计划书
2014/01/31 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
安全生产标语
2014/06/06 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android