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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
python生成日历实例解析
Aug 21 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
对python中的pop函数和append函数详解
May 04 Python
详解python3中tkinter知识点
Jun 21 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
Apr 08 Python
Python学习之time模块的基本使用
Jan 17 Python
用python制作个音乐下载器
Jan 30 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 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截取中文字符串的问题
2006/07/12 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
剖析Angular Component的源码示例
2018/03/23 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
python简单实现刷新智联简历
2016/03/30 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
Django REST framwork的权限验证实例
2020/04/02 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
大学自主招生自荐信范文
2014/02/26 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
教学副校长工作总结
2015/08/13 职场文书
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技
vue实现简易音乐播放器
2022/08/14 Vue.js