python

超轻量级php框架startmvc

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

更新时间:2020-05-27 10:36 作者:startmvc
pandas提供了set_index方法可以将DataFrame的列(多列)变成行索引,通过reset_index方法可以将层

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的列变成行索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。