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 29 Python
Python中if __name__ == "__main__"详细解释
Oct 21 Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 Python
Python实现删除文件但保留指定文件
Jun 21 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
如何将python中的List转化成dictionary
Aug 15 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
python通过opencv实现批量剪切图片
Nov 13 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
python打印直角三角形与等腰三角形实例代码
Oct 20 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 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
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
python操作MongoDB基础知识
2013/11/01 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
便捷提取python导入包的属性方法
2018/10/15 Python
django 将model转换为字典的方法示例
2018/10/16 Python
python内存动态分配过程详解
2019/07/15 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
《石榴》教学反思
2014/03/02 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
2015年检验科工作总结
2015/04/27 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python