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实现批量转换文件编码(批转换编码示例)
Jan 23 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
python实现按行切分文本文件的方法
Apr 18 Python
python获取指定时间差的时间实例详解
Apr 11 Python
Python实现自动发送邮件功能
Mar 02 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
TensorFlow数据输入的方法示例
Jun 19 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
python爬取代理ip的示例
Dec 18 Python
Python截图并保存的具体实例
Jan 14 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
德生S2000电路分析
2021/03/02 无线电
第五节 克隆 [5]
2006/10/09 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
详解python调度框架APScheduler使用
2017/03/28 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
阿拉伯书店:Jamalon
2019/07/24 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
大学生创业策划书
2014/02/02 职场文书
元旦晚会策划方案
2014/02/18 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
主题党日活动总结
2014/07/08 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android