pandas对一个DataFrame经过groupby分组之后得到的返回值不是DataFrame类型,因此无法直接查看。输出如下:
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000190B96CBDF0>
除了直接运用各种聚合操作读取各分组的统计信息外,我们有三种方法可以查看分组后的具体结果:
1. 通过循环遍历打印:
假设原数据 df 如下所示:

则按Gender分组后遍历打印遍历如下:
for i in df.groupby('Gender'):
print(i)
可以得到如下内容:

可以看出返回的内容是由若干个二元组构成的,元组第一位是分组名,第二位是组内成员构成的DataFrame。而元组之间并不是由python通常的元组、列表或字典连接的,这也是groupby的返回类型难以直接查看的原因。
2. 用df.groups查看分组情况
df.groupby('Gender').groups
得到的结果如下:

表示F分组中是原表中第2,4行数据,M分组中是原表中第1,3,5,6行数据。
3. 用df.get_group()查看每组内容
df.groupby('Gender').get_group('F')
得到的结果如下:

(注意:.get_group()一次只能查看一组数据。)
当使用pandas的groupby方法对DataFrame进行分组后,返回的是一个DataFrameGroupBy对象,无法直接查看。可以通过循环遍历、查看groups属性或使用get_group方法来获取分组信息。循环遍历会显示每个分组的名称及其对应的DataFrame,df.groups展示各组索引,get_group则用于单独查看某一组数据。本文详细介绍了这三种查看分组结果的方法。

120

被折叠的 条评论
为什么被折叠?



