数据清洗,如何理解groupby的as_index参数?
发布于 作者:苏南大叔 来源:程序如此灵动~

对dataframe
数据进行分组的时候,有个as_index
参数。本文对这个参数进行一下简要的讨论,根据官方文档的说法,这个参数的最大的作用是控制数据输出的风格。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验文章。本文测试环境:python@3.12.3
,pandas@2.2.2
,numpy@1.26.4
。
前置阅读
本文强烈相关的文章有:
- https://newsn.net/say/dataframe-groupby.html
- https://newsn.net/say/dataframe-groupby-first.html
- hhttps://newsn.net/say/pandas-dataframe.html
本文的龙套角色数据,依然是苏南大叔的宠物列表。数据如下:
输出:
由于本文范例数据的特殊性,使用.first()
输出所有目标数据。
默认as_index为True【真正的groupby】
输出都是:
注意看:category age
和name
,并不在一行上。前者表示的是group
,后者就是传统意义上的列名。
as_index = False【sql风格输出】
什么是sql
风格输出呢?个人理解就是类似sql语句的数据输出,每行上都有数据。当然,对于dataframe
原始数据输出的话,这些数据是根据group
排序过的,而且全部的索引值进行了重排。
输出:
describe()输出【不推荐】
使用.describe()
输出,也可以看到两者的数据结果,是有区别的。但是得到的是统计数据,并非原始数据。
输出:
输出:
结语
目前来看,as_index
参数带来的数据结果表现形式,确实有所区别。


