pandas将DataFrame的列变成行索引的方法


Posted in Python onApril 10, 2018

pandas提供了set_index方法可以将DataFrame的列(多列)变成行索引,通过reset_index方法可以将层次化索引的级别会被转移到列里面。

1、DataFrame的set_index方法

data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
  print(data)
  '''
    A B C
  a 1 2 3
  b 4 5 6
  c 7 8 9
  '''
  #将列索引为B的列变成data的行索引
  print(data.set_index("B"))
  '''
   A C
  B
  2 1 3
  5 4 6
  8 7 9
  '''
  #获取行索引
  print(data.set_index("B").index)
  #Int64Index([2, 5, 8], dtype='int64', name='B')
  #获取列索引
  print(data.set_index("B").columns)
  #Index(['A', 'C'], dtype='object')
  #将列索引为A和C的列变成行索引,层次化索引
  print(data.set_index(["A","C"]))
  '''
     B
  A C
  1 3 2
  4 6 5
  7 9 8
  '''

2、DataFrame的reset_index方法

data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
  print(data)
  '''
    A B C
  a 1 2 3
  b 4 5 6
  c 7 8 9
  '''
  print(data.set_index(["C"]))
  '''
    A B
  C
  3 1 2
  6 4 5
  9 7 8
  '''
  #相对于data来说行索引从原来的a、b、c变成了0、1、2
  #在使用set_index方法的时候行索引就已经被修改了
  print(data.set_index(["C"]).reset_index())
  '''
    C A B
  0 3 1 2
  1 6 4 5
  2 9 7 8
  '''
  print(data.index)
  #Index(['a', 'b', 'c'], dtype='object')
  print(data.set_index(["C"]).reset_index().index)
  #RangeIndex(start=0, stop=3, step=1)
  print(data.set_index(["C"]).reset_index().columns)
  #Index(['C', 'A', 'B'], dtype='object')

以上这篇pandas将DataFrame的列变成行索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python执行get提交的方法
Apr 29 Python
Django 实现下载文件功能的示例
Mar 06 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
Python实现的各种常见分布算法示例
Dec 13 Python
Python3爬虫全国地址信息
Jan 05 Python
Python 绘制酷炫的三维图步骤详解
Jul 12 Python
Django中间件基础用法详解
Jul 18 Python
Python中的四种交换数值的方法解析
Nov 18 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
python datetime时间格式的相互转换问题
Jun 11 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
Python 中的 copy()和deepcopy()
Nov 07 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 #Python
python DataFrame 修改列的顺序实例
Apr 10 #Python
pandas中的DataFrame按指定顺序输出所有列的方法
Apr 10 #Python
python中利用zfill方法自动给数字前面补0
Apr 10 #Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 #Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 #Python
Python比较2个时间大小的实现方法
Apr 10 #Python
You might like
Dedecms V3.1 生成HTML速度的优化办法
2007/03/18 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
28个JS验证函数收集
2010/03/02 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
jquery,js简单实现类似Angular.js双向绑定
2017/01/13 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
ES6入门教程之Array.from()方法
2019/03/23 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
Python urlopen 使用小示例
2008/09/06 Python
python 测试实现方法
2008/12/24 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python Pandas 箱线图的实现
2019/07/23 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
PHP面试题附答案
2015/11/28 面试题
求职者怎样写自荐信
2014/04/13 职场文书
程序员求职信
2014/04/16 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python