第六章 pandas入门,改变series和DataFrame索引

本章节介绍了如何在pandas DataFrame中使用reindex方法进行行和列索引的添加、重排。通过.reindex(columns=)和.reindex(index=)可以调整索引顺序,而.drop方法用于删除索引。值得注意的是,reindex不仅仅是更改索引名称,而是改变了DataFrame的结构。同时,文章提到了rename方法用于便捷地改名,以及利用.index进行批量改名的操作。

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

增加或重排:重新索引reindex
删除:drop
对于一个已经建好的DataFrame对象,想要调整它的列索引顺序。
这里写图片描述
使用.reindex(columns=)方法
这里写图片描述
同理,使用.reindex(index=)方法,可以调整它的行索引顺序。
这里写图片描述
总结:千万不要认为reindex仅仅是给索引改名,它是改变了key-values的关系,改变了整个DataFrame对象结构。

添加行索引,newdf=df.columns.insert(4,‘新增’)
这里写图片描述
这条语句的意思是,在df的行索引上插入一个新的索引,它执行完成后,newdf是一个index类型,并不是最终的DataFrame对象。
再次使用newd=df.reindex(columns=newdf)语句,才能完成索引重排,得到想要的DataFrame对象。
这里写图片描述
因为没有给新增的列提供数据,所以值为NaN,想要填充这些值,可以在reindex中添加参数fill_value
这里写图片描述
如果想要删除某列,使用.columns.delete()
这里写图片描述
#####总结,添加或删除行列索引分为两步骤,第一步准备新的索引名.columns.insert(delete)或者.index.insert(delete),第二步使用reindex重排,注意insert和delete的位置参数不能为自定义的索引名,只能使用默认的数字.
#####有没有删除更简单的方法呢,那就是使用.drop,这样参数能为自定义的索引名,更简单的添加方法似乎没有。

df.drop(columns=lab) 或者df.drop(lab,axis=1)
这里写图片描述

这里添加行索引后,又把列顺序给搞乱了,有点烦。
#####检查了一下执行顺序,发现一个疑问:

df.reindex(columns=['城市','同比','环比','定基'])
df.columns

明明使用reindex方法修改了columns,但是df.columns依然没有变化。
这里写图片描述
#####改名使用rename
前一章的疑惑,如何给指定的series行索引改名方法,以及DataFrame指定行列索引改名方法,也通过官方文档查询到了。
毕竟如果仅仅需要修改1,2个行列索引名,把全部的名字都重新赋值一次太麻烦了。
使用.rename({})形式,新名字与旧名字用:号隔开,单纯改名,不改变DataFrame对象结构。
这里写图片描述
rename优点在于只需要写出要改的标签,其余不动。
####批量改名
比如想把index标签0到4修改成10到14,虽然也可以用rename,但是代码写出来要一一对应,也比较麻烦。
更简单的方法是用.index属性,前一章已经提过.index事实上就是一个列表。

ls=list(range(10,15))
df.index=ls

这里写图片描述
还有一种方式,这个列子.index能够进行算术操作,index标签0到4修改成10到14,只需要原始.index+10

newindex=df.index+10
df.index=newindex

这里写图片描述
和rename比起来,缺点在于.index必须给出所有列表元素,哪怕你不想修改的部分,也要原样填充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值