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数据结构之二叉树的统计与转换实例
Apr 29 Python
python自动化测试之setUp与tearDown实例
Sep 28 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 Python
django解决订单并发问题【推荐】
Jul 31 Python
Python接口测试get请求过程详解
Feb 28 Python
Python实现对adb命令封装
Mar 06 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 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
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
2014/07/28 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python切片用法实例教程
2014/09/08 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
django表单的Widgets使用详解
2019/07/22 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
请介绍一下Ant
2016/07/22 面试题
升职自荐信范文
2013/10/05 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
网络信息安全承诺书
2014/03/26 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
党支部培养考察意见
2015/06/02 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python