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查找相似单词的方法
Mar 05 Python
Python运算符重载详解及实例代码
Mar 07 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
python多进程读图提取特征存npy
May 21 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
python实现滑雪游戏
Feb 22 Python
基于python实现简单网页服务器代码实例
Sep 14 Python
python如何做代码性能分析
Apr 26 Python
Python学习之os包使用教程详解
Mar 21 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP中,文件上传
2006/12/06 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
jQuery中调用WebService方法小结
2011/03/28 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
vue-router单页面路由
2017/06/17 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
vue基础之事件v-onclick="函数"用法示例
2019/03/11 Javascript
vue--vuex详解
2019/04/15 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
初学Python实用技巧两则
2014/08/29 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python print出共轭复数的方法详解
2019/06/25 Python
基于python实现学生信息管理系统
2019/11/22 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
博士学位自我鉴定范文
2013/12/26 职场文书
上班早退检讨书
2014/01/09 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
基于CSS制作创意端午节专属加载特效
2022/06/01 HTML / CSS