Pandas —— set_index( )将DataFrame的列转换为行索引

本文介绍如何使用Python的pandas库中的`set_index()`函数来改变DataFrame的索引,包括将一或多列设置为索引并选择是否保留这些列。同时展示了如何通过`reset_index()`函数撤销这些更改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

In [42]: frame=pd.DataFrame({'a':range(7),'b':range(7,0,-1),
    ...: 'c':['one','one','one','two','two','two','two'],
    ...: 'd':[0,1,2,0,1,2,3]})

In [43]: frame
Out[43]:
   a  b    c  d
0  0  7  one  0
1  1  6  one  1
2  2  5  one  2
3  3  4  two  0
4  4  3  two  1
5  5  2  two  2
6  6  1  two  3

DataFrame的set_index( )函数会将一个或多个列转换为行索引

In [44]: frame.set_index(['c','d'])
Out[44]:
       a  b
c   d
one 0  0  7
    1  1  6
    2  2  5
two 0  3  4
    1  4  3
    2  5  2
    3  6  1

默认情况下,转换的列会从DataFrame中移除,但也可以将其保留下来

In [47]: frame.set_index(['c','d'],drop=False)
Out[47]:
       a  b    c  d
c   d
one 0  0  7  one  0
    1  1  6  one  1
    2  2  5  one  2
two 0  3  4  two  0
    1  4  3  two  1
    2  5  2  two  2
    3  6  1  two  3

reset_index( )是set_index( )的逆运算

In [45]: frame.set_index(['c','d']).reset_index()
Out[45]:
     c  d  a  b
0  one  0  0  7
1  one  1  1  6
2  one  2  2  5
3  two  0  3  4
4  two  1  4  3
5  two  2  5  2
6  two  3  6  1

转载地址:

《利用Python进行数据分析》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值