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使用电子邮件模块smtplib的方法
Aug 28 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
python将时分秒转换成秒的实例
Dec 07 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
Apr 26 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
python使用pycharm安装pyqt5以及相关配置
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
PHP4实际应用经验篇(4)
2006/10/09 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
Extjs入门之动态加载树代码
2010/04/09 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
详解python调度框架APScheduler使用
2017/03/28 Python
python回调函数中使用多线程的方法
2017/12/25 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
python如何编写win程序
2020/06/08 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
Shell如何接收变量输入
2016/08/06 面试题
社区健康教育实施方案
2014/03/18 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
六一儿童节标语
2014/10/08 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
保研导师推荐信
2015/03/25 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
2015年推普周活动方案
2015/05/06 职场文书
关于教师节的广播稿
2015/08/19 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书