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 str与repr的区别
Mar 23 Python
Python读写Redis数据库操作示例
Mar 18 Python
python计算圆周率pi的方法
Jul 11 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
代码实例讲解python3的编码问题
Jul 08 Python
如何基于Python实现数字类型转换
Feb 07 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
浅析Python __name__ 是什么
Jul 07 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 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下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
让innerText在firefox火狐和IE浏览器都能用的写法
2011/05/14 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
详解vue中axios的封装
2018/07/18 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
node.js获取参数的常用方法(总结)
2017/05/29 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
意大利团购网站:Groupon意大利
2016/10/11 全球购物
美国玩具公司:U.S.Toy
2018/05/19 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
百度软件工程师职位
2013/02/14 面试题
乡镇爱国卫生月活动总结
2014/06/25 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
实习指导老师意见
2015/06/04 职场文书
会议新闻稿
2015/07/17 职场文书
销售人员管理制度
2015/08/06 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
vue打包时去掉所有的console.log
2022/04/10 Vue.js