欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pandas中关于set_index和reset_index的用法

程序员文章站 2022-06-03 18:54:34
...

1.set_index

DataFrame可以通过set_index方法,可以设置单索引和复合索引。 
DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False) 
append添加新索引,drop为False,inplace为True时,索引将会还原为列

创建一个Dataframe类型

# coding=utf-8
import pandas as pd
dates = pd.DataFrame(columns=['a','b','c','d'],index=range(0,4))
data = pd.DataFrame({
    'a':['bar','bar2','foo','foo2'],
    'b':['one','two','one','two'],
    'c':['z','y','x','w'],
    'd':['1.0','2.0','3.0','4.0']
})
print(data)

#运行结果

     a     b     c    d
0  bar  one  z  1.0
1  bar  two  y  2.0
2  foo  one  x  3.0
3  foo  two  w  4.0

     

indexed1 = data.set_index('c')   #设置单一索引
print(indexed1)

#运行结果

     a    b    d
c               
z  bar  one  1.0
y  bar  two  2.0
x  foo  one  3.0
w  foo  two  4.0

indexed2 = data.set_index(['a', 'b'])   #设置复合索引
print(indexed2)

#设置复合索引

             c    d
a     b          
bar one  z  1.0
      two  y  2.0
foo one  x  3.0
      two  w  4.0

重复索引不再显示,所以bar,foo出现一次,但是one,two却出现两次,说明相邻两列如果序列名字相同则去重复列名

2.reset_index

reset_index可以还原索引,重新变为默认的整型索引 
DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”) 
level控制了具体要还原的那个等级的索引 
drop为False则索引列会被还原为普通列,否则会丢失

indexed3=data.reset_index()
print(indexed3)

 

#运行结果

   index    a    b  c    d
0      0  bar  one  z  1.0
1      1  bar  two  y  2.0
2      2  foo  one  x  3.0
3      3  foo  two  w  4.0

相关标签: dataframe