目录

一、reindex方法

一、reindex方法

reindex的作用是对Series或DataFrame对象创建一个适应新索引的新对象。

以一个简单示例说明。

import pandas as pd

from pandas import Series, DataFrame

obj = Series([4.5, 7.2, -5.3, 3.6], index = ['d', 'b', 'a', 'c'])

#reindex用法示例

obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])

obj2

输出:a -5.3

b 7.2

c 3.6

d 4.5

e NaN

dtype: float64

可以看到reindex方法重新设定了一组数据的索引,如果索引在原数据中没有匹配,则以NaN填充。

如果不想以NaN填充呢?可以用fill_value方法来设置。

obj.reindex(['a', 'b', 'c', 'd', 'e'], fill_value = 0)

输出:a -5.3

b 7.2

c 3.6

d 4.5

e 0.0

dtype: float64

也可以用ffill方法实现前向填充,也就是补充的索引如果没有对应的数值,则取前一个索引的值填充。

obj3 = Series(['blue', 'purple', 'yellow'], index = [0, 2, 4])

obj3

输出:0 blue

2 purple

4 yellow

dtype: object

#使用ffill实现前向值填充

obj3.reindex(range(6), method = 'ffill')

输出:0 blue

1 blue

2 purple

3 purple

4 yellow

5 yellow

dtype: object

以上都是对Series的reindex用法,接下来看看DataFrame的reindex方法。

区别主要在于,DataFrame可以对index或columns使用reindex方法。

#DataFrame使用reindex方法

import numpy as np

frame = DataFrame(np.arange(9).reshape((3, 3)), index = ['a', 'c', 'd'], columns = ['Ohio', 'Texas', 'California'])

frame

输出:

Ohio Texas California

a 0 1 2

c 3 4 5

d 6 7 8

frame2 = frame.reindex(['a', 'b', 'c', 'd'])

frame2

输出:

Ohio Texas California

a 0.0 1.0 2.0

b NaN NaN NaN

c 3.0 4.0 5.0

d 6.0 7.0 8.0

states = ['Texas', 'Utah', 'California']

frame.reindex(columns = states)

输出:

Texas Utah California

a 1 NaN 2

c 4 NaN 5

d 7 NaN 8

#对DataFrame使用ffill方法,书里的写法会报错,用如下写法是没问题的

frame.reindex(index = ['a', 'b', 'c', 'd'], columns = states).ffill()

输出:

Texas Utah California

a 1.0 NaN 2.0

b 1.0 NaN 2.0

c 4.0 NaN 5.0

d 7.0 NaN 8.0

#标签索引loc方法(书中的'ix'方法已经不能使用了,loc方法等同原ix方法

frame.loc[['a', 'b', 'c', 'd'], states]

输出:

Texas Utah California

a 1.0 NaN 2.0

b NaN NaN NaN

c 4.0 NaN 5.0

d 7.0 NaN 8.0

假期最后一天。。。就写这么多了。。。

python中的reindex_Python学习笔记(6):Pandas的reindex方法相关推荐

  1. Python中索引的学习笔记

    1 前言 今天在学习FaceBoxes- 看到一个比较奇怪的代码,"order = scores.argsort()[::-1][:args.top_k]",不太懂这个" ...

  2. python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例

    本文实例讲述了Python学习笔记之pandas索引列.过滤.分组.求和功能.分享给大家供大家参考,具体如下: 前面我们已经把519961(基金编码)这种基金的历史净值明细表html内容抓取到了本地, ...

  3. Python中面向对象(学习笔记)

    文章目录 一.面向过程与面向对象 简述 面向过程编程 面向对象编程 二.类和对象 类 对象(实例) 类和对象的关系 三.类的定义 四.类中的成员 类属性 实例函数(对象函数,成员函数) 实例函数和普通 ...

  4. python中argsort_(学习笔记)numpy中argsort函数用法

    在Python中使用help帮助 >>> import numpy >>> help(numpy.argsort) Help on function argsort ...

  5. python中的loop_django学习笔记之forloop

    在学习django时候,看到djangobook中关于forloop知识详解中,有这么一句话"在一个 {% for %} 块中,已存在的变量会被移除,以避免 forloop 变量被覆盖&qu ...

  6. python中string.digits_python学习笔记五:字符串方法

    常用字符串常量: string.digits:包含数字0~9的字符串 string.letters:包含所有字母(大写或小写字符串,在python3.0中,使用string.ascii-letters ...

  7. python绘图实例-Python中turtle绘图学习笔记和实例

    一.既然本次讲的主角是turtle函数库,那肯定得先了解一下它是什么 turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位 ...

  8. python如何读取tfrecord_tensorflow学习笔记——高效读取数据的方法(TFRecord)

    关于TensorFlow读取数据,官网给出了三种方法: 供给数据(Feeding):在TensorFlow程序运行的每一步,让python代码来供给数据. 从文件读取数据:在TensorFlow图的起 ...

  9. Python学习笔记:pandas初体验

    Python学习笔记:pandas初体验 一.安装pandas模块 1.安装Python3.7 注意:必须勾选pip(python install package). 2.配置环境变量 3.下载 pa ...

最新文章

  1. 苹果发布首款 Mac 自研芯片 M1,贯通生态快人一步!
  2. P1134 阶乘问题
  3. 【BZOJ】4873: [Shoi2017]寿司餐厅
  4. java中声明内部类变量,java – 从内部类中访问变量(dialogView),需要声明final
  5. 为什么jupyterlab运行程序的时候会自动停止_搭建 Julia 轻量级编写环境(VSCode,JupyterLab)
  6. 中怎样载入选区_【平面设计教学】Photoshop基本教学-第3章 选区与填色
  7. C语言单片机数码管a段亮,各位大神,如何用C语言实现在数码管上实现1234同时亮...
  8. STL-Deque的实现
  9. fstream实现文件复制(并将文件名小写改成大写)
  10. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨平面上的最近距离【难度中等】
  11. bootstrap 取消_学习写个网站(5)Bootstrap学习2
  12. 基于CFS算法的schedule()源码分析
  13. tomcat,Jboss,weblogic区别与比较
  14. 开源软件许可协议简介
  15. 利用python进行数据分析——第十四章_数据分析案例
  16. JAVA Metrics 度量工具使用介绍1
  17. Sophos 和 ReversingLabs 公开含2000万个 PE 文件的数据集
  18. The Suspects(并查集入门)
  19. 电工技师技能实训考核装置QY-W601C
  20. 使用canvas给页面添加文字水印

热门文章

  1. 【Es】Es 选主流程
  2. 【Java】Java 集合 可视化 在线演示 环境
  3. Spark类型不匹配导致无法读取到数据
  4. Idea在plugin的marketplace中一直查不到东西安装插件
  5. IDEA使用PlantUML构建类图,时序图等
  6. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(2)
  7. rsyslog 日志管理服务
  8. java8 日期比较_20 个案例教你在 Java 8 中如何处理日期和时间?
  9. 有啥不同?来看看Spring Boot 基于 JUnit 5 实现单元测试
  10. cgi java编程_Java的CGI数据编码改如何编写