公众号:Python读财
如有问题或建议,请公众号留言
在日常的数据分析中,经常需要将数据**根据某个(多个)字段划分为不同的群体(group)**进行分析,如电商领域将全国的总销售额根据省份进行划分,分析各省销售额的变化情况,社交领域将用户根据画像(性别、年龄)进行细分,研究用户的使用情况和偏好等。在Pandas中,上述的数据处理操作主要运用groupby
完成,这篇文章就介绍一下groupby
的基本原理及对应的agg
、transform
和apply
操作。
为了后续图解的方便,采用模拟生成的10个样本数据,代码和数据如下:
company=["A","B","C"]
data=pd.DataFrame({
"company":[company[x] for x in np.random.randint(0,len(company),10)],
"salary":np.random.randint(5,50,10),
"age":np.random.randint(15,50,10)
}
)
company | salary | age | |
---|---|---|---|
0 | C | 43 | 35 |
1 | C | 17 | 25 |
2 | C | 8 | 30 |
3 | A | 20 | 22 |
4 | B | 10 | 17 |
5 | B | 21 | 40 |
6 | A | 23 | 33 |
7 | C | 49 | 19 |
8 | B | 8 | 30 |
一、Groupby的基本原理
在pandas中,实现分组操作的代码很简单,仅需一行代码,在这里,将上面的数据集按照company
字段进行划分:
In [5]: group = data.groupby("company")
将上述代码输入ipython
后,会得到一个DataFrameGroupBy
对象
In [6]: group
Out[6]: &