Pandas之DataFrame对象的列和索引之间的转化


Posted in Python onJune 25, 2019

约定:

import pandas as pd

DataFrame对象的列和索引之间的转化

我们常常需要将DataFrame对象中的某列或某几列作为索引,或者将索引转化为对象的列。pandas提供了set_index()/reset_index() 来供我们使用。

一、列转化为索引

df1=pd.DataFrame({'X':range(5),'Y':range(5),'S':list("aaabb"),'Z':[1,1,2,2,2]})
df1

代码结果:

S X Y Z
0 a 0 0 1
1 a 1 1 1
2 a 2 2 2
3 b 3 3 2
4 b 4 4 2

指定列为索引

df1.set_index('S')

代码结果:

X Y Z
S
a 0 0 1
a 1 1 1
a 2 2 2
b 3 3 2
b 4 4 2

指定多个列作为多级索引

df1.set_index(['S','Z'])

代码结果:

X Y
S Z
a 1 0 0
1 1 1
2 2 2
b 2 3 3
2 4 4

同时保留作为索引的列

df1.set_index(['S','Z'],drop=False)

代码结果:

S X Y Z
S Z
a 1 a 0 0 1
1 a 1 1 1
2 a 2 2 2
b 2 b 3 3 2
2 b 4 4 2

二、索引转化为列

df2=df1.set_index(['S','Z'])
df2

代码结果:

X Y
S Z
a 1 0 0
1 1 1
2 2 2
b 2 3 3
2 4 4

将单个索引作为DataFrame对象的列

df2.reset_index('Z')

代码结果:

Z X Y
S
a 1 0 0
a 1 1 1
a 2 2 2
b 2 3 3
b 2 4 4

将多级索引作为列

df2.reset_index()

代码结果:

S Z X Y
0 a 1 0 0
1 a 1 1 1
2 a 2 2 2
3 b 2 3 3
4 b 2 4 4

直接删除对指定索引

df2.reset_index('Z',drop=True)

代码结果:

X Y
S
a 0 0
a 1 1
a 2 2
b 3 3
b 4 4

直接对原DataFrame对象修改

df2.reset_index(inplace=True)
df2

代码结果:

S Z X Y
0 a 1 0 0
1 a 1 1 1
2 a 2 2 2
3 b 2 3 3
4 b 2 4 4

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
python模块restful使用方法实例
Dec 10 Python
使用cx_freeze把python打包exe示例
Jan 24 Python
整理Python最基本的操作字典的方法
Apr 24 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 #Python
PYQT5实现控制台显示功能的方法
Jun 25 #Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 #Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 #Python
Pandas之ReIndex重新索引的实现
Jun 25 #Python
Python中使用__new__实现单例模式并解析
Jun 25 #Python
pyQt5实时刷新界面的示例
Jun 25 #Python
You might like
PHP获取文件行数的方法
2015/06/10 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
浅谈javascript的调试
2015/01/28 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
如何手工释放资源
2013/12/15 面试题
物流经理自我评价
2013/09/23 职场文书
房地产出纳岗位职责
2013/12/01 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
一年级班主任感言
2014/03/08 职场文书
秋天的图画教学反思
2014/05/01 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2014年医生工作总结
2014/11/21 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python