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实现dnspod自动更新dns解析的方法
Feb 14 Python
Django集成百度富文本编辑器uEditor攻略
Jul 04 Python
详解Python中的type()方法的使用
May 21 Python
Python 字符串大小写转换的简单实例
Jan 21 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
python编程羊车门问题代码示例
Oct 25 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
python list格式数据excel导出方法
Oct 31 Python
python3获取当前目录的实现方法
Jul 29 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
教你怎么用python实现字符串转日期
May 24 #Python
pandas中DataFrame重置索引的几种方法
May 24 #Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
You might like
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
JS 继承实例分析
2008/11/04 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
python实现爬取图书封面
2018/07/05 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
Eclipse面试题
2014/03/22 面试题
推荐信模板
2014/05/09 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
爱护公物演讲稿
2014/09/09 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
详解thinkphp的Auth类认证
2021/05/28 PHP