Pandas进阶肆 分组

Pandas进阶肆 分组

pandas进阶系列根据datawhale远昊大佬的joyful pandas教程写一些自己的心得和补充,本文部分引用了原教程,并参考了《利用Python进行数据分析》、pandas官网

目前的进度是学习了整个课程并做了几个练一练,习题还没有做,练一练的思考过程在下文中有展示

一、分组模式及其对象

1. 分组的一般模式

分组操作在日常生活中使用极其广泛,例如:

  • 依据 性 别 \color{#FF0000}{性别} 分组,统计全国人口 寿 命 \color{#00FF00}{寿命} 寿 平 均 值 \color{#0000FF}{平均值}
  • 依据 季 节 \color{#FF0000}{季节} 分组,对每一个季节的 温 度 \color{#00FF00}{温度} 进行 组 内 标 准 化 \color{#0000FF}{组内标准化}
  • 依据 班 级 \color{#FF0000}{班级} 筛选出组内 数 学 分 数 \color{#00FF00}{数学分数} 平 均 值 超 过 80 分 的 班 级 \color{#0000FF}{平均值超过80分的班级} 80

从上述的几个例子中不难看出,想要实现分组操作,必须明确三个要素: 分 组 依 据 \color{#FF0000}{分组依据} 数 据 来 源 \color{#00FF00}{数据来源} 操 作 及 其 返 回 结 果 \color{#0000FF}{操作及其返回结果} 。同时从充分性的角度来说,如果明确了这三方面,就能确定一个分组操作,从而分组代码的一般模式即:

df.groupby(分组依据)[数据来源].使用操作

例如第一个例子中的代码就应该如下:

df.groupby('Gender')['Longevity'].mean()
import numpy as np
import pandas as pd
df = pd.read_csv('../data/learn_pandas.csv')

2. 分组依据的本质

分组依据的本质是所依据的项的unique值

【练一练】

请根据上下四分位数分割,将体重分为high、normal、low三组,统计身高的均值。

【我的思路】
#先看下数据的分布
df.describe()
Height Weight Test_Number
count 183.000000 189.000000 200.000000
mean 163.218033 55.015873 1.645000
std 8.608879 12.824294 0.722207
min 145.400000 34.000000 1.000000
25% 157.150000 46.000000 1.000000
50% 161.900000 51.000000 1.500000
75% 167.500000 65.000000 2.000000
max 193.900000 89.000000 3.000000

一开始的写法是查看describe的数据分布,然后手工取其中的分位数,实际工程肯定不能这么做,然后搜了下series.quantile是求分位数的实例方法,之前几章应该有学过,用的少还是不熟练得搜一下才知道,感谢这道题帮我强化记忆!

这里查了一下,groupby的分组依据可以是mapping, function, label, or list of labels</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值