Pandas常用操作命令(六)——数据分组groupby

大家好,我是 👉【Python当打之年(点击跳转)】

本期为大家带来 《 Pandas常用操作命令》第六篇 ,主要介绍在数据处理可视化过程中经常用到的一些指令,本系列在后期会不断进行补充更新,希望对你有所帮助,如有疑问或者需要改进的地方可以私信小编。


🏳️‍🌈 6. 数据分组

示例数据:
在这里插入图片描述

6.1 一列分组

df2.groupby('省份').groups

{‘上海’: [‘009’], ‘广东’: [‘003’, ‘010’], ‘江苏’: [‘001’, ‘013’], ‘浙江’: [‘011’], ‘海南’: [‘005’], ‘重庆’: [‘007’]}

6.2 多列分组

df2.groupby(['省份','城市']).groups

{(‘上海’, ‘上海’): [‘009’], (‘广东’, ‘广州’): [‘003’], (‘广东’, ‘深圳’): [‘010’], (‘江苏’, ‘南京’): [‘001’, ‘013’], (‘浙江’, ‘杭州’): [‘011’], (‘海南’, ‘海口’): [‘005’], (‘重庆’, ‘重庆’): [‘007’]}

6.3 每组的统计数据(横向显示)

df2.groupby('省份').describe()

在这里插入图片描述

6.4 每组的统计数据(纵向显示)

df2.groupby('省份').describe().unstack()

在这里插入图片描述

6.5 查看指定列的统计信息

df2.groupby('省份').describe()['语文']

在这里插入图片描述

6.6 分组大小

df2.groupby('省份').count()

df2.groupby('省份').agg(np.size)

在这里插入图片描述

6.7 分组成绩最大值

df2.groupby('省份').max()

df2.groupby('省份').agg(np.max)

在这里插入图片描述

6.8 分组成绩最小值

df2.groupby('省份').min()

df2.groupby('省份').agg(np.min)

在这里插入图片描述

6.9 分组成绩总和

df2.groupby('省份').sum()

df2.groupby('省份').agg(np.sum)

在这里插入图片描述

6.10 分组平均成绩

df2.groupby('省份').mean()

df2.groupby('省份').agg(np.mean)

在这里插入图片描述

6.11 按省份分组,计算英语成绩总分和平均分

df2.groupby('省份')['英语'].agg([np.sum, np.mean])

在这里插入图片描述

6.12 按省份、城市分组计算平均成绩

df2.groupby(['省份','城市']).agg(np.mean)

在这里插入图片描述

6.13 不同列不同的计算方法

df2.groupby('省份').agg({'语文': sum, '数学':'count', '英语':'mean'})

在这里插入图片描述

6.14 性别分别替换为1/0

df2 = df2.dropna()
df2['性别'] = df2['性别'].map({'男':1, '女':0})

在这里插入图片描述

6.15 增加一列按省份分组的语文平均分

df2['语文平均分'] = df2.groupby('省份')['语文'].transform('mean')

在这里插入图片描述

6.16 输出语文成绩最高的男生和女生(groupby默认会去掉空值)

def get_max(g):
    df = g.sort_values('语文',ascending=True)
    print(df)
    return df.iloc[-1,:]

df2.groupby('性别').apply(get_max)

在这里插入图片描述

6.17 按列省份、城市进行分组,计算语文、数学、英语成绩最大值的透视表

df.pivot_table(index=['省份','城市'], values=['语文','数学','英语'], aggfunc=max)

在这里插入图片描述

未完待续。。。


文章首发:微信公众号 Python当打之年,Python编程技巧推送,希望大家可以喜欢。

以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享注明出处)让更多人知道。

推荐阅读


  • 6
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python当打之年

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值