三、Pandas set_index&reset_index

##  Pandas set_index&reset_index
df样例:
     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

#### 1、set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
默认情况:
DataFrame.set_index(keys,drop=True,append=False,inplace=False,verify_integrity=False)
参数说明
keys                列标签(需要设置为索引的列)
drop                删除用作新索引的列
append                是否将列附加到现有索引
inplace                表示当前操作是否对原数据生效
verify_integrity    检查新索引的副本
备注:通常排序注意要将drop=false,否则少一列

##### 1.1、# 单索引:key='c'时
df1 = df.set_index('c') 

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

##### 1.2、也可以手动指定多层索引
df.set_index([pd.Index([1,2,3,4,5,6,7]), 'c'])

##### 1.3、直接设置多层索引,默认drop=True时
df2 = data.set_index(['a', 'b'])

              c    d
 a   b          
bar one  z  1.0
       two  y  2.0
foo  one  x  3.0
       two  w  4.0
    
##### 1.4、索引计算
df.set_index([s, s**2]) # 二层索引是一层索引的幂

#### 2、reset_index 重置索引
默认情况:
reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”)
参数说明:
level      数字,或者等于索引的名称都可以;如果索引有多个列,仅从索引中删除level指定的列;默认删除所有级别的索引
drop       False 时,则索引列会被还原为普通列
inplace    布尔类型 是否修改原始数据
col_level: 如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级(由上往下0,1,2...)
col_fill:  重置索引时被删除的索引只能插入一个级别,如果列名(columns)有多个级别,那么这个列的列名的其他级别如何命名就由col_fill决定,默认不做填充,如果传入None则用被删除的索引的名字填充

df.reset_index()
     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

其它参数设置可参照上述举一返三,不作赘述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值