如下所示:
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