python pandas 对series和dataframe的重置索引reindex方法


Posted in Python onJune 07, 2018

reindex更多的不是修改pandas对象的索引,而只是修改索引的顺序,如果修改的索引不存在就会使用默认的None代替此行。且不会修改原数组,要修改需要使用赋值语句。

series.reindex()

import pandas as pd
import numpy as np
obj = pd.Series(range(4), index=['d', 'b', 'a', 'c'])
print obj
d 0
b 1
a 2
c 3
dtype: int64
print obj.reindex(['a', 'b', 'c', 'd', 'e'])
1
a 2.0
b 1.0
c 3.0
d 0.0
e NaN
dtype: float64

多出的索引‘e'会被赋值NaN

内插或填充method

obj1=pd.Series(range(3), index=['a', 'c', 'e'])
print obj1.reindex(['a', 'b', 'c', 'd', 'e'],method='pad')
a 0
b 0
c 1
d 1
e 2
dtype: int64

ffill或pad: 前向(或进位)填充

bfill或backfill: 后向(或进位)填充

dataframe.reindex()

dataframe.reindex()可以改变(行)索引,列或两者。当只传入一个序列时,行被重新索引,一次可以对两个重新索引,可是插值只在行侧(0坐标轴)进行

frame = pd.DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'], columns=['c1', 'c2', 'c3'])
print frame
c1 c2 c3
a 0 1 2
c 3 4 5
d 6 7 8
states = ['c1', 'b2', 'c3']
frame.reindex(columns=states)

c1 b2 c3
a 0 NaN 2
c 3 NaN 5
d 6 NaN 8

列名不一样的会被赋值nan

frame_na=frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill', columns=states)
print frame_na
c1 b2 c3
a 0 NaN 2
b 0 NaN 2
c 3 NaN 5
d 6 NaN 8

插值只在行侧(0坐标轴)进行,但是我们可以在其之后,对nan值进行填充

frame_na.fillna(method='ffill',axis=1)

c1 b2 c3
a 0.0 0.0 2.0
b 0.0 0.0 2.0
c 3.0 3.0 5.0
d 6.0 6.0 8.0

以上这篇python pandas 对series和dataframe的重置索引reindex方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
Python 数据结构之队列的实现
Jan 22 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
深入浅析python 协程与go协程的区别
May 09 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
django删除表重建的实现方法
Aug 28 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Python实现区域填充的示例代码
Feb 03 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 #Python
解决DataFrame排序sort的问题
Jun 07 #Python
python爬取网页内容转换为PDF文件
Jul 28 #Python
python爬取网页转换为PDF文件
Jun 07 #Python
python实现pdf转换成word/txt纯文本文件
Jun 07 #Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 #Python
python生成ppt的方法
Jun 07 #Python
You might like
php去除二维数组的重复项方法
2015/11/03 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
五种js判断是否为整数类型方式
2015/12/03 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
Python hashlib模块的使用示例
2020/10/09 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
.net笔试题
2014/03/03 面试题
华三通信H3C面试题
2015/05/15 面试题
软件设计的目标是什么
2016/12/04 面试题
应届本科生推荐信范文
2013/12/25 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
工会工作先进事迹
2014/08/18 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
浅析MongoDB之安全认证
2021/06/26 MongoDB
Python制作动态字符画的源码
2021/08/04 Python
python运算符之与用户交互
2022/04/13 Python
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python