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

yipeiwu_com6年前Python基础

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设计】。

相关文章

详解Python3序列赋值、序列解包

上节我们提到解决赋值中等号两边参数不一致的方法可以通过切片,但在Python3中我们可以利用特定的语法更加方便的处理这种情况,如下示例。 当带 * 出现在结尾间时 L = [1, 2...

在Mac OS系统上安装Python的Pillow库的教程

今天帮朋友做个python的小工具,发现系统上缺少ptyhon的支持库,返回如下信息 ImportError: No module named PIL  然后就下载安装,因为...

python中实现将多个print输出合成一个数组

比如有下面一段代码: for i in range(10): print ("%s" % (f_list[i].name)) 该代码段的执行,会生成如下的10行“name”属性...

python使用HTMLTestRunner导出饼图分析报告的方法

python使用HTMLTestRunner导出饼图分析报告的方法

目录如下: 这里有使用 HTMLTestRunner和 echarts.common.min.js文件[见百度网盘,这里给自己留个记录便于查询] unit_test.py代码如下:...

深入Python解释器理解Python中的字节码

深入Python解释器理解Python中的字节码

我最近在参与Python字节码相关的工作,想与大家分享一些这方面的经验。更准确的说,我正在参与2.6到2.7版本的CPython解释器字节码的工作。 Python是一门动态语言,在命令行...