理论部分
- 理解SAC过程和groupby机制
- 掌握分组三大操作:聚合、过滤和变换
- 熟悉 apply 函数用法
练习部分
- 钻石数据集分析
- 非法药物数据集分析
习题讲解
【练习一】: 现有一份关于diamonds的数据集,列分别记录了克拉数、颜色、开采深度、价格,请解决下列问题:描述如下
(a) 在所有重量超过1克拉的钻石中,价格的极差是多少?
df = pd.read_csv('data/Diamonds.csv')
df.head()
df_r = df.query('carat>1')['price']
df_r.max()-df_r.min()
(b) 若以开采深度的0.2\0.4\0.6\0.8分位数为分组依据,每一组中钻石颜色最多的是哪一种?该种颜色是组内平均而言单位重量最贵的吗?
bins = df['depth'].quantile(np.linspace(0,1,6)).tolist()
cuts = pd.cut(df['depth'],bins=bins) #可选label添加自定义标签
df['cuts'] = cuts
df.head()
color_result = df.groupby('cuts')['color'].describe()
color_result
df['均重价格']=df['price']/df['carat']
color_result['top'] == [i[1] for i in df.groupby(['cuts