pandas修改DataFrame的行名为指定范围的数

本文详细介绍了如何使用pandas的reset_index()、set_index()方法修改DataFrame的索引。通过实例展示了reset_index()在不指定drop参数时会保留原索引作为新列,而设置drop=True会删除原索引。同时,演示了通过新增列并用set_index()设置指定范围的索引,以及如何修改index的name属性。
摘要由CSDN通过智能技术生成

pandas想要修改行名,有reset_index()、set_index()、reindex()和reindex_like()方法。使用得较多的是reset_index(),其作用是使index的范围是[0,df.shape[0]),如果不指定drop参数的话,那么原本的index会保留下来并且作为第一列,例如已经有一个DataFrame,其index编号从60到70(左闭右开),如下:
在这里插入图片描述
现在使用reset_index()方法对其操作:

myDf=myDf.reset_index()

结果如下:
在这里插入图片描述
可以看到不指定drop参数的reset_index()方法会将原来的index作为新表的第一列,原因是drop参数默认为False。如果指定drop参数为True,则原来的index便不会作为第一列出现在新表中了。如下:

myDf.reset_index(drop=True,inplace=True)

结果如下:
在这里插入图片描述
可以看到reset_index()如果指定drop=True的话则会删除原来的index。
现在,我们想要修改index为指定的范围,比如[990,999].我的想法是对DataFrame增加一列,这一列的值就是我们想要的范围,然后使用set_index()方法指定DataFrame的index,这样就可以得到指定范围的index了。代码如下:

myDf[myDf.shape[1]]=[v for v in range(990,1000)]
myDf.set_index(myDf.shape[1]-1,inplace=True)

结果如下:
在这里插入图片描述
可以看到,index变成了指定范围的数,只是index上面有一个数字10,其实那是修改过程中原本的列名.我们可以输出DataFrame的index看看:

myDf.index

结果如下:
在这里插入图片描述
可以看到index对象的name属性等于10.其实到这我们的目的已经达成了,但是如果看这个index.name不爽的话也可以直接对其进行赋值修改:

myDf.index.name=0

结果如下:
在这里插入图片描述
再打印myDf看看:
在这里插入图片描述
可以看到修改了index.name属性后显示在myDf的name也对应改变了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值