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 datetime时间格式化去掉前导0
Jul 31 Python
Python中的ctime()方法使用教程
May 22 Python
python多线程方式执行多个bat代码
Jun 07 Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
numpy返回array中元素的index方法
Jun 27 Python
python数据结构之线性表的顺序存储结构
Sep 28 Python
python 定时器,轮询定时器的实例
Feb 20 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 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产生动态的影像图
2006/10/09 PHP
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
json数据的列循环示例
2013/09/06 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
python 对象和json互相转换方法
2018/03/22 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Python Collatz序列实现过程解析
2019/10/12 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
python让函数不返回结果的方法
2020/06/22 Python
python RSA加密的示例
2020/12/09 Python
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
医学护理系毕业生求职信
2013/10/01 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
Java 死锁解决方案
2022/05/11 Java/Android
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android