您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 哈密分类信息网,免费分类信息发布

(二十)Python数据Pandas索引

2024/2/4 7:08:24发布42次查看
索引对象
索引数数据表中每行数据的标识,通过索引可以轻松访问指定数据。pandas中的索引是数组结构,可以像数组一样访问各个元素,与数组不同的是pandas索引列表中的元素不允许修改,由于pandas索引的这个特性,我们可以放心的在不同的series和dataframe对象中共享索引,而不用担心索引的改变。由于series和dataframe对象中索引操作方法相同,这里仅以dataframe对象为例。
图1 pandas索引对象上图第2行代码创建了一个dataframe对象df,索引为字符串数组,第6行中对索引列表的元素进行修改会报错,提示“index does not support mutable operations”,即索引不支持修改操作。由于我们在创建df时定义的索引有重复元素“a”,所以当我们使用loc[‘a’]对行进行访问时会得到索引为“a”的所有数据(第1行和第3行)。
在pandas中不允许修改索引中的元素,但可以通过重新索引的方式为series或dataframe对象指定新的索引。最简单的办法是用index方法将可调用对象(callable)索引化,然后赋值给series或dataframe对象的索引。下图的代码同样仅以dataframe对象为例。
图2 pandas索引对象重新索引
pandas提供了reindex方法对series和dataframe对象进行重新索引,即利用新索引将series和dataframe对象的数据进行重排,并创建一个新的对象。重排时不仅会按照新索引对数据进行排序,还将比对新老索引,对数据进行过滤和填充nan操作。下图是series对象的重新索引的例子,代码比较简单,不需解释。
图3 series对象重新索引而在dataframe中,reindex方法不仅可以修改行索引,还可以对列进行修改。行索引的修改与series中的操作相同,可以对顺序进行重排,也可以对数据进行过滤和填充;对列进行修改时需要向reindex方法的参数中通过“columns=”指定新的列。
图4 dataframe对象重新索引reindex方法使用起来很简单,但需要注意重新索引用于创建新的对象,并不会对原对象进行修改。细心的读者可能发现了:图3中对series对象的索引进行修改时,由于自动填充了nan值,整数型数据自动转换为浮点型;同理在图4中对dataframe对象的行索引进行修改时,数据表中所有整数型数据转换成浮点型。但在图4中对列进行修改时,整数型的数据并没有转变成浮点型,这是为什么?请读者认真思考,欢迎留言讨论。本文代码已上传网盘,网盘链接见评论。
哈密分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录