如下所示:
1
2
3
4
5
6
7
|
import pandas as pd df = pd.DataFrame({ '性别' : [ '男' , '女' , '男' , '女' , '男' , '女' , '男' , '男' ], '成绩' : [ '优秀' , '优秀' , '及格' , '差' , '及格' , '及格' , '优秀' , '差' ], '年龄' : [ 15 , 14 , 15 , 12 , 13 , 14 , 15 , 16 ]}) |
GroupBy.iter()
GroupBy对象是一个迭代对象,每次迭代结果是一个元组,元组的第一个元素是该组的名称(就是groupby的列的元素名称),第二个元素是该组的具体信息,是一个数据框,索引是以前的数据框的总索引
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
for name,group in GroupBy: print (name) print (group) 女 年龄 性别 成绩 1 14 女 优秀 3 12 女 差 5 14 女 及格 男 年龄 性别 成绩 0 15 男 优秀 2 15 男 及格 4 13 男 及格 6 15 男 优秀 7 16 男 差 |
GroupBy.groups
显示分组的组名,以及所对应的索引
1
2
|
print (GroupBy.groups) { '女' : Int64Index([ 1 , 3 , 5 ], dtype = 'int64' ), '男' : Int64Index([ 0 , 2 , 4 , 6 , 7 ], dtype = 'int64' )} |
GroupBy.indices
类似于GroupBy.groups
1
2
|
print (GroupBy.indices) { '女' : array([ 1 , 3 , 5 ], dtype = int64), '男' : array([ 0 , 2 , 4 , 6 , 7 ], dtype = int64)} |
GroupBy.get_group(name[, obj])
获得某一个分组的具体信息
1
2
3
4
5
6
7
8
|
In [ 2 ]: GroupBy.get_group( "男" ) Out[ 2 ]: 年龄 性别 成绩 0 15 男 优秀 2 15 男 及格 4 13 男 及格 6 15 男 优秀 7 16 男 差 |
Grouper([key, level, freq, axis, sort])
应用
可以先通过循环获得所有的组的名称
1
2
3
|
for name in GroupBy: print (name) # 获得所有分组的名称 GroupBy.get_group(name) #获得所有该名称的数据 |
以上这篇Pandas GroupBy对象 索引与迭代方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/claroja/article/details/72911882