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 相关文章推荐
python数据结构树和二叉树简介
Apr 29 Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 Python
Python计时相关操作详解【time,datetime】
May 26 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
对python:print打印时加u的含义详解
Dec 15 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
python实现ftp文件传输功能
Mar 20 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 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制作静态网站的模板框架
2006/10/09 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
PHP中“=>
2019/03/01 PHP
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
JavaScript this关键字的深入详解
2021/01/14 Javascript
python双向链表实现实例代码
2013/11/21 Python
Python实现的多线程端口扫描工具分享
2015/01/21 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Django之腾讯云短信的实现
2020/06/12 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
Python-split()函数实例用法讲解
2020/12/18 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
电子商务专员岗位职责
2013/12/11 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
推荐信格式范文
2014/05/09 职场文书
党员一帮一活动总结
2014/07/08 职场文书
装修活动策划方案
2014/08/27 职场文书
企业文化学习心得体会
2016/01/21 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技