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用于url解码和中文解析的小脚本(python url decoder)
Aug 11 Python
python显示天气预报
Mar 02 Python
Python中字典和JSON互转操作实例
Jan 19 Python
python简单获取本机计算机名和IP地址的方法
Jun 03 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 Python
Python %r和%s区别代码实例解析
Apr 03 Python
python实现人像动漫化的示例代码
May 17 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
详解Python内置模块Collections
Mar 22 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 UBB 解析实现代码
2011/11/27 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
PHP中cookie知识点学习
2018/05/06 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[02:08]2014DOTA2国际邀请赛 430专访:力争取得小组前二
2014/07/11 DOTA
Python爬虫实现百度图片自动下载
2018/02/04 Python
Django 拆分model和view的实现方法
2019/08/16 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Pycharm调试程序技巧小结
2020/08/08 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
机械设计毕业生自荐信
2014/02/02 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
校运会广播稿
2015/08/19 职场文书
导游词之天津盘山
2019/11/01 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
java设计模式--七大原则详解
2021/07/21 Java/Android
Python开发简易五子棋小游戏
2022/05/02 Python