首先介绍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使用详解相关推荐

  1. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  2. Python中的select、epoll详解

    Python中的select.epoll详解 文章目录 Python中的select.epoll详解 一.select 1.相关概念 2.select的特性 1.那么单进程是如何实现多并发的呢??? ...

  3. python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)

    很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...

  4. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  5. python中plt定义,对Python中plt的画图函数详解

    1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...

  6. python中selenium模块驱动谷歌详解

    python中selenium模块驱动谷歌详解 Selenium的介绍.配置和调用 Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中 ...

  7. python中的subprocess.Popen()使用详解---以及注意的问题(死锁)

    从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...

  8. python中的True 和 False详解

    python中的True 和 False详解 参考 [1] https://docs.python.org/3/library/stdtypes.html#truth 中的Truth Value Te ...

  9. python中xlrd模块的使用详解

    python中xlrd模块的使用详解 两个问题: 什么是xlrd模块? 为什么使用xlrd模块? 1.什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读 ...

最新文章

  1. KMP算法 java版本
  2. 华为s8600手机驱动_只有手机才能快充?华为MateBook X的灵巧快充解放你的续航焦虑-华为 ——快科技(驱动之家旗下媒体)-...
  3. 众信旅游:旅游及相关产品会参与阿里双十一活动
  4. fft python 举例_Python FFT合成波形的实例
  5. Eclipse中的Git使用之Branch创建,Merge
  6. Gentle.NET Attribute
  7. 我愿意为你在城里的月光下温暖冷冷的爱情
  8. $(#).html(ftl) js 动态引入宏定义,FTL惯用标签及语法
  9. R60笔记本电脑风扇清理加油过程
  10. 卡塔尔能源每年将向中石化供应400万吨液化天然气;哪吒汽车发布技术品牌浩智 | 美通企业日报...
  11. 佳句赏析_求上者居中,求中者居下,求下者则不入流; 原作者 出处 出自 | 句子迷...
  12. Pytorch中的grid_sample算子功能解析
  13. 计算机工程师考证要求
  14. 超详细的遗传算法(Genetic Algorithm)解析【转】
  15. 搭建类京东网站服务器
  16. Spring @Resource
  17. 多功能运算求解器_matlab中bsxfun函数
  18. oracle创建表空间及查看表空间和使用情况
  19. Java输出最大值,最小值3种方法
  20. U盘中毒后文件夹全部被变成系统隐藏文件,并生成同名文件夹带exe后缀

热门文章

  1. Photopile JS – 帮助你实现精致的照片堆叠效果
  2. CE驱动程序快速入门
  3. linux下vscode配置c++,使其和Visual Studio2019一样调试
  4. tensorflow2.1学习--tf.keras学习之tf.keras.models.Sequential
  5. linux 域名怎么平台,linux平台搭建DNS域名服务与常用配置
  6. python基础1之 由来、种类、优缺点、安装环境
  7. 常微分方程的初始条件使用
  8. 微软官方推出的win10安装或者创建安装u盘的工具
  9. 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记
  10. pandas 处理 csv