DataFrame—数据汇总4

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

一.分组计算 

#示例数据
df = pd.read_csv("pokemon_data.csv",encoding="gbk")
df.head(10)
姓名 类型1 类型2 总计 生命值 攻击力 防御力 速度 时代
0 Bulbasaur Grass Poison 318 45 49 49 45 1
1 Ivysaur Grass Poison 405 60 62 63 60 1
2 Venusaur Grass Poison 525 80 82 83 80 1
3 VenusaurMega Venusaur Grass Poison 625 80 100 123 80 1
4 Charmander Fire NaN 309 39 52 43 65 1
5 Charmeleon Fire NaN 405 58 64 58 80 1
6 Charizard Fire Flying 534 78 84 78 100 1
7 CharizardMega Charizard X Fire Dragon 634 78 130 111 100 1
8 CharizardMega Charizard Y Fire Flying 634 78 104 78 100 1
9 Squirtle Water NaN 314 44 48 65 43 1

 1.如何分组计算

假设现在要根据“类型1”这列来做分组计算

#查看下类型1中的类别数量分布
df["类型1"].value_counts()
Water       112
Normal       98
Grass        70
Bug          69
Psychic      57
Fire         52
Electric     44
Rock         44
Ground       32
Dragon       32
Ghost        32
Dark         31
Poison       28
Steel        27
Fighting     27
Ice          24
Fairy        17
Flying        4
Name: 类型1, dtype: int64
#查看类型1中有多少个类型
len(df["类型1"].value_counts())

Q1:想知道类型1的这18个种类各自的平均攻击力是多少(单列分组计算)

#根据类型1这列来分组,并将结果存储在grouped1中
grouped1 = df.groupby("类型1")
#输出grouped1,这里就是显示它是一个分组对象,并且存储的内存地址是0x0000000008EE9E80,没什么卵用
grouped1
#求类型1的18个种类各自的平均攻击力
grouped1[["攻击力"]].mean()
攻击力
类型1
Bug 70.971014
Dark 88.387097
Dragon 112.125000
Electric 69.090909
Fairy 61.529412
Fighting 96.777778
Fire 84.769231
Flying 78.750000
Ghost 73.781250
Grass 73.214286
Ground 95.750000
Ice 72.750000
Normal 73.469388
Poison 74.678571
Psychic 71.456140
Rock 92.863636
Steel 92.703704
Water 74.151786

小结一下:

grouped1 = df.groupby("类型1")这一步就是分组计算流程里的第一步:split

grouped1[["攻击力"]].mean() 这一步就是分组计算流程的第二和第三步:apply—combine

Q2:想知道类型1和类型2的组合类型里,每个组合各自的攻击力均值(多列分组计算)

grouped2 = df
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值