python中的reindex_Python reindex使用详解
首先介绍reindex,它的作用是创建一个新对象,新对象的数据符合新的索引。示例如下所示
从上图可以看出,使用reindex后,索引进行了重排。如果某个索引值不存在,就会引入缺失值:
如果不想使用缺失值,可以通过fill_value参数填充默认值,如下所示
同时也可以使用method选项,使用method时,可用的参数包括ffill(前向填充)和bfill(后向填充)。
在使用method选项时,你可能会发现ffill或bfill填充的值与预期的值不符,如下图所示:
本来认为‘o’索引填充的值应该是3,但上面填充的却是4,这是为什么呢?
因为在reindex的括号内部使用method选项时:先按照索引的顺序排序好,然后再填充值,填充完成后再按照reindex里新索引的顺序进行排列。
因此obj先按照a,b,c,d,o的顺序排列好,d的值是4, o的值就被前向填充成4了。
同理,如果使用bfill参数,因为o后面没有值了,o的值就是NaN,而不是2。如下图所示
但是如果使用.ffill()或.bfill(),就能够达到我们想要的效果:填充值与前向/后项值相同。如下图所示:
同时需要注意的是,在使用method选项时,原数组里的索引必须是已经经过排序的,如果原索引是乱序的,会弹出如下错误
index must be monotonic increasing or decreasing
如下所示obj3的原索引未按顺序排列:
如果此时使用method选项,就会报错:
但使用.ffill()就不会有问题:
使用method方式是旧python的做法,新版python中推荐使用.ffill()方式。
通过reindex还可以选择特定的索引:
对于DataFrame,reindex可以修改行索引或列索引。如果只传递一个序列,则会修改行索引:
用columns关键字就可以重新索引列,如下所示
通过本文的学习,你是否学会了reindex的用法?
python中的reindex_Python reindex使用详解相关推荐
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- Python中的select、epoll详解
Python中的select.epoll详解 文章目录 Python中的select.epoll详解 一.select 1.相关概念 2.select的特性 1.那么单进程是如何实现多并发的呢??? ...
- python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)
很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- python中plt定义,对Python中plt的画图函数详解
1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...
- python中selenium模块驱动谷歌详解
python中selenium模块驱动谷歌详解 Selenium的介绍.配置和调用 Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中 ...
- python中的subprocess.Popen()使用详解---以及注意的问题(死锁)
从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...
- python中的True 和 False详解
python中的True 和 False详解 参考 [1] https://docs.python.org/3/library/stdtypes.html#truth 中的Truth Value Te ...
- python中xlrd模块的使用详解
python中xlrd模块的使用详解 两个问题: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读 ...
最新文章
- KMP算法 java版本
- 华为s8600手机驱动_只有手机才能快充?华为MateBook X的灵巧快充解放你的续航焦虑-华为 ——快科技(驱动之家旗下媒体)-...
- 众信旅游:旅游及相关产品会参与阿里双十一活动
- fft python 举例_Python FFT合成波形的实例
- Eclipse中的Git使用之Branch创建,Merge
- Gentle.NET Attribute
- 我愿意为你在城里的月光下温暖冷冷的爱情
- $(#).html(ftl) js 动态引入宏定义,FTL惯用标签及语法
- R60笔记本电脑风扇清理加油过程
- 卡塔尔能源每年将向中石化供应400万吨液化天然气;哪吒汽车发布技术品牌浩智 | 美通企业日报...
- 佳句赏析_求上者居中,求中者居下,求下者则不入流; 原作者 出处 出自 | 句子迷...
- Pytorch中的grid_sample算子功能解析
- 计算机工程师考证要求
- 超详细的遗传算法(Genetic Algorithm)解析【转】
- 搭建类京东网站服务器
- Spring @Resource
- 多功能运算求解器_matlab中bsxfun函数
- oracle创建表空间及查看表空间和使用情况
- Java输出最大值,最小值3种方法
- U盘中毒后文件夹全部被变成系统隐藏文件,并生成同名文件夹带exe后缀
热门文章
- Photopile JS – 帮助你实现精致的照片堆叠效果
- CE驱动程序快速入门
- linux下vscode配置c++,使其和Visual Studio2019一样调试
- tensorflow2.1学习--tf.keras学习之tf.keras.models.Sequential
- linux 域名怎么平台,linux平台搭建DNS域名服务与常用配置
- python基础1之 由来、种类、优缺点、安装环境
- 常微分方程的初始条件使用
- 微软官方推出的win10安装或者创建安装u盘的工具
- 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记
- pandas 处理 csv