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中__init__和__new__的区别详解
Jul 09 Python
python实现根据月份和日期得到星座的方法
Mar 27 Python
Python字典操作简明总结
Apr 13 Python
python删除特定文件的方法
Jul 30 Python
Python的log日志功能及设置方法
Jul 11 Python
django foreignkey外键使用的例子 相当于left join
Aug 06 Python
Python批量启动多线程代码实例
Feb 18 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
python字典与json转换的方法总结
Dec 28 Python
Python如何telnet到网络设备
Feb 18 Python
python blinker 信号库
May 04 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
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Node.js API详解之 net模块实例分析
2020/05/18 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
python redis 删除key脚本的实例
2019/02/19 Python
Python3 合并二叉树的实现
2019/09/30 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
HTML5样式控制示例代码
2013/11/27 HTML / CSS
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
办公室前台岗位职责
2014/01/04 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
《学会待客》教学反思
2014/02/22 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
党员自我评价2015
2015/03/03 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
如何通过cmd 连接阿里云服务器
2022/04/18 Servers