Pandas数据分组groupby()和统计函数agg()的使用
上官
2023-01-31 14:52:12

数据分组

★ 使用 groupby() 方法进行分组
★ group.size()查看分组后每组的数量
★ group.groups 查看分组情况
★ group.get_group(“名字”) 根据分组后的名字选择分组数据

首先打开一份数据

使用 groupby() 方法进行分组


可以按 性别 进行分组,或者同时按 性别 和 婚姻状况 来分组

使用groupby的size方法可以查看分组后每组的数量, 并返回一个含有分组大小的Series

按性别分组:假如我想看男的有多少人?女的有多少人?

?
1
2
3
4
5
6
7
8
import pandas as pd
 
pd.set_option('display.unicode.ambiguous_as_wide', True#处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文
 
df=pd.read_excel(r'C:\Users\Administrator\Desktop\python练习\xbx_stock_2019\People.xls',encoding='gbk')
df1=df.groupby('性别').size()
print(df1)

同时按 性别 和 婚姻状况 分组:

?
1
df.groupby(['性别','婚姻状况']).size()

对分组进行遍历


将分组后的对象进行遍历,可以获取到每个组的名字以及每个组的数据

例如我将上面的数据按照 性别 分组,它返回的是一个对象,结果是这样的:

?
1
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000000028FCBE0>

我们看不到里面的内容,如果想要里面有什么内容可以使用for循环把里面的数据遍历出来

?
01
02
03
04
05
06
07
08
09
10
11
12
import pandas as pd
 
pd.set_option('display.unicode.ambiguous_as_wide', True#处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文
 
df=pd.read_excel(r'C:\Users\Administrator\Desktop\python练习\xbx_stock_2019\People.xls',encoding='gbk')
 
group=df.groupby('性别')
 
for df_name,df_DataFrame in group:
    print(df_name)
    print(df_DataFrame)

这样就能看到分组后的对象信息了

现在我有一个这样的需求,我想知道,分组后,各组的年龄最大值、最小值和平均值,需要怎么做呢?

方法如下:

?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
import pandas as pd
 
pd.set_option('display.unicode.ambiguous_as_wide', True#处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文
 
df=pd.read_excel(r'C:\Users\Administrator\Desktop\python练习\xbx_stock_2019\People.xls',encoding='gbk')
 
group=df.groupby('性别')
 
for df_name,df_age in group:
    df_max=df_age['年龄'].max()
    df_min=df_age['年龄'].min()
    df_mean=df_age['年龄'].mean()
    print(f'{df_name}性的最大年龄是:{df_max},最小年龄是:{df_min},平均年龄是:{df_mean}')

相关内容

热门资讯

小程序秘诀!莆田麻将辅助神器... 您好:“这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多玩家在这款游...
让我来告诉玩家!微乐山东麻将... 您好:微乐山东麻将这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多玩...
关于聚乐九州麻将是不是有人开... 有亲,根据资深记者爆料聚乐九州麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887...
德扑之星有没有挂-分享开挂教... 有亲,根据资深记者爆料德扑之星是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您...
新年龙年必看趣味八张清确实是... 有亲,根据资深记者爆料趣味八张清是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)...
欢乐麻将破解技巧,wepok... 您好:“德扑之星这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多玩家...
原来有内幕德扑之星有挂吗分享... 有亲,根据资深记者爆料德扑之星是可以开挂的,确实有挂(咨询软件无需打开直接加微176594599)您...
终于发现66江苏麻将免费挂下... 有亲,根据资深记者爆料66江苏麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887...
新年大解答!老友内蒙麻将如何... 有亲,根据资深记者爆料老友内蒙麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微176594599...
万万没想到!智星德 州菠萝可... 作为一款受欢迎的游戏,吸引着众多玩家参与私人局的游戏体验。然而,有一种声称能透视私人局的挂机软件,引...
今日通报!一起温州麻将如何才... 有亲,根据资深记者爆料一起温州麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微176594599...
秒懂科技!雀神广东麻将开挂透... 您好:“雀神广东麻将这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多...
今日提供!九九山城麻将开挂神... 有亲,根据资深记者爆料九九山城麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887...
秒懂科技!茄子娱乐到底可以装... 有亲,根据资深记者爆料茄子娱乐是可以开挂的,确实有挂(咨询软件无需打开直接加微176594599)您...
教您发现“微信小程序雀神广东... 雀神广东麻将作为一款受欢迎的游戏,吸引着众多玩家参与私人局的游戏体验。然而,有一种声称能透视私人局的...
曝光台!优乐南昌麻将挂软件w... 有亲,根据资深记者爆料南昌麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您...
来袭来袭找!呗兔怎么下挂.开... 有亲,根据资深记者爆料是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您好,,确...
终于知道新道游牛牛怎样容易赢... 有亲,根据资深记者爆料新道游牛牛是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)...
教教大家“新海洋世界总部究竟... 有亲,根据资深记者爆料是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您好,,确...
一分钟必胜-微乐甘肃麻将透视... 您好:“微乐甘肃麻将这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多...
技能科普!中至九江麻将确实真... 有亲,根据资深记者爆料中至九江麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微176594599...
分享给大家369麻将确实可以... 有亲,根据资深记者爆料是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您好,,确...
(全新解说)钱塘十三水辅助开... 您好:钱塘十三水这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多玩家...
共享指导!牌友圈究竟能不能开... 您好:“这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多玩家在这款游...
蜀山四川麻将有挂吗怎么安装程... 有亲,根据资深记者爆料蜀山四川麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微176594599...
终于找到老友边锋麻将买挂被骗... 您好:“边锋麻将这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多玩家...
我来教授方法茶苑丽水到底有没... 有亲,根据资深记者爆料茶苑丽水是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您...
推荐的啦!微乐捉鸡麻子透视挂... 您好:“微乐捉鸡麻子这款游戏可以开-挂,确实是有-挂的,需要了解加客服微信【176594599】很多...
给大家讲一讲贵州麻将万能挂详... 有亲,根据资深记者爆料贵州麻将是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您...
与您分享!德扑之星开挂器.w... 有亲,根据资深记者爆料德扑之星是可以开挂的,确实有挂(咨询软件无需打开直接加微835087887)您...