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 13 Python
linux下安装easy_install的方法
Feb 10 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
改进Django中的表单的简单方法
Jul 17 Python
简单谈谈Python的pycurl模块
Apr 07 Python
详解python while 函数及while和for的区别
Sep 07 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
python 实时调取摄像头的示例代码
Nov 25 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
python实现黄金分割法的示例代码
Apr 28 Python
浅析python中特殊文件和特殊函数
Feb 24 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实现手机归属地查询API接口实现代码
2012/08/27 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
Cookie 小记
2010/04/01 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
浅谈js中的bind
2019/03/18 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
python中查看变量内存地址的方法
2015/05/05 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
python可视化text()函数使用详解
2020/02/11 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
python实现超级马里奥
2020/03/18 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
python3字符串输出常见面试题总结
2020/12/01 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
Html5 localStorage入门教程
2018/04/26 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
美国在线珠宝商店:SZUL
2017/02/11 全球购物
法律七进实施方案
2014/03/15 职场文书
春游踏青活动方案
2014/08/14 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书