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

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

以上是 pandas将DataFrame的列变成行索引的方法 的全部内容, 来源链接: utcz.com/z/351003.html

回到顶部