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中声明只包含一个元素的元组数据方法
Aug 25 Python
python通过exifread模块获得图片exif信息的方法
Mar 16 Python
详解Python中的装饰器、闭包和functools的教程
Apr 02 Python
用Python进行行为驱动开发的入门教程
Apr 23 Python
Python加pyGame实现的简单拼图游戏实例
May 15 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
三步实现Django Paginator分页的方法
Jun 11 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Django choices下拉列表绑定实例
Mar 13 Python
Python使用Excel将数据写入多个sheet
May 16 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中输出转义JavaScript代码的实现代码
2011/04/22 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Python文件处理
2016/02/29 Python
wxPython之解决闪烁的问题
2018/01/15 Python
python中字符串的操作方法大全
2018/06/03 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
RealTek面试题
2016/06/28 面试题
办公室文秘自我评价
2013/09/21 职场文书
英语专业应届生求职信范文
2013/11/15 职场文书
工程资料员岗位职责
2014/03/10 职场文书
奥利奥广告词
2014/03/20 职场文书
企业承诺书格式
2014/05/21 职场文书
经济管理自荐书
2014/06/09 职场文书
前台接待员岗位职责
2015/04/15 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
Python之基础函数案例详解
2021/08/30 Python
python实现双向链表原理
2022/05/25 Python