数据的分组

这篇博客介绍了Pandas库中数据的分组操作,包括单列分组、多列分组以及如何遍历和统计分组后的数据,强调了分组在数据切片、切块和摘要中的应用。
摘要由CSDN通过智能技术生成

数据的分组

Pandas提供了一个灵活高效的groupby功能,它能对数据集进行切片、切块、摘要等操作。

DataFrame.groupby('列索引'), 分组后的结果为DataFrameGroupBy object,是一个分组后的对象。用groupbysize()方法可以查看分组后每组的数量,并返回一个含有各分组所包含数值数量的Series:print(groups.size())

import pandas as pd
import random
dic = {
   'name':['xiaoming','xiaohua','xiaohong','xiaohei','xiaobai'],'gender':['F','M','F','F','M'],'grade':random.sample(range(0,100),5)}
df = pd.DataFrame(dic)
df
name gender grade
0 xiaoming F 72
1 xiaohua M 39
2 xiaohong F 31
3 xiaohei F 6
4 xiaobai M 81
groups = df.groupby('gender')
print(groups)
print(type(groups)) # 分组后的对象
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000272FF801DD8>
<class 'pandas.core.groupby.generic.DataFrameGroupBy'>
datas = groups.size()
print(datas) # 返回各组多少数量的Series对象
print(type(datas))
gender
F    3
M    2
dtype: int64
<class 'pandas.core.series.Series'>
# 计算男女比例
rate = datas['F']/datas['M']
rate
1.5
# 计算男女占总人数的比例
for gender, quantity in datas.items():
    rate1 = quantity / df.shape[0]
    final_rate = '%.2f%%'%(rate1*100)
    print('总人数中{}性占比为{}'.format(gender,final_rate))
总人数中F性占比为60.00%
总人数中M性占比为40.00%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值