Pandas之ReIndex重新索引的实现


Posted in Python onJune 25, 2019

约定:

import pandas as pd
import numpy as np

ReIndex重新索引

reindex()是pandas对象的一个重要方法,其作用是创建一个新索引的新对象。

一、对Series对象重新索引

se1=pd.Series([1,7,3,9],index=['d','c','a','f'])
se1

代码结果:

d    1
c    7
a    3
f    9
dtype: int64

调用reindex将会重新排序,缺失值则用NaN填补。

se2=se1.reindex(['a','b','c','d','e','f'])
se2

代码结果:

a    3.0
b    NaN
c    7.0
d    1.0
e    NaN
f    9.0
dtype: float64

传入method=” “重新索引时选择插值处理方式:

method='ffill'或'pad 前向填充

method='bfill'或'backfill 后向填充

se3=pd.Series(['blue','red','black'],index=[0,2,4])
se4=se3.reindex(range(6),method='ffill')
se4

代码结果:

0     blue
1     blue
2      red
3      red
4    black
5    black
dtype: object

二、对DataFrame对象重新索引

对于DataFrame对象,reindex能修改行索引和列索引。

df1=pd.DataFrame(np.arange(9).reshape(3,3),index=['a','c','d'],columns=['one','two','four'])
df1

代码结果:

one two four
a 0 1 2
c 3 4 5
d 6 7 8

默认对行索引重新排序

只传入一个序列不能重新排序列索引

df1.reindex(['a','b','c','d'])

代码结果:

one two four
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
df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'])

代码结果:

one two three four
a 0.0 1.0 NaN 2.0
b NaN NaN NaN NaN
c 3.0 4.0 NaN 5.0
d 6.0 7.0 NaN 8.0

传入fill_value=n用n代替缺失值:

df1.reindex(index=['a','b','c','d'],columns=['one','two','three','four'],fill_value=100)

代码结果:

one two three four
a 0 1 100 2
b 100 100 100 100
c 3 4 100 5
d 6 7 100 8

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
使用PyCharm配合部署Python的Django框架的配置纪实
Nov 19 Python
Python变量和字符串详解
Apr 29 Python
Python基础之getpass模块详细介绍
Aug 10 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
Django学习笔记之为Model添加Action
Apr 30 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
python Plotly绘图工具的简单使用
Mar 03 Python
python 写一个文件分发小程序
Dec 05 Python
Python 实现RSA加解密文本文件
Dec 30 Python
Python中使用__new__实现单例模式并解析
Jun 25 #Python
pyQt5实时刷新界面的示例
Jun 25 #Python
Pandas之MultiIndex对象的示例详解
Jun 25 #Python
Python+threading模块对单个接口进行并发测试
Jun 25 #Python
python简单鼠标自动点击某区域的实例
Jun 25 #Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 #Python
python命令行参数用法实例分析
Jun 25 #Python
You might like
PHP经典的给图片加水印程序
2006/12/06 PHP
php 正则 过滤html 的超链接
2009/06/02 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
python Django 创建应用过程图示详解
2019/07/29 Python
Python实现数值积分方式
2019/11/20 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
Python threading模块condition原理及运行流程详解
2020/10/05 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
Servlet方面面试题
2016/09/28 面试题
交通法规咨询中心工作职责
2013/11/27 职场文书
创先争优活动个人总结
2015/03/04 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
MySQL创建管理RANGE分区
2022/04/13 MySQL