Python学习Pandaspython学习

详解pandas数据分析之groupby分组聚合(上)

2019-03-03  本文已影响27人  谦行看商业

该篇文章基于电商的商品数据信息,详细介绍pandas数据分析之分组聚合的方法与技巧(保密起见,只展示部分数据)。

分组聚合结果展示:


20181218224011339.png

一、导入pandas包并读取数据集

import pandas as pd
df = pd.read_excel('./data/sku_analysis.xlsx')

数据

20181218195520228.png

数据字段说明

1、platform:用户使用的终端设备类型,分pc端、m端、ios端、android端。
2、sku:某款特点商品的唯一编号。
3、expose_num:商品sku的累计曝光数。
4、click_num:商品sku的累计点击数。
5、cart_num:商品sku的累计加购数。
6、collect_num:商品sku的累计收藏数。
7、order_num:商品sku的累计下单数。

二、分组

1、生成分组对象

按sku进行分组,代码如下:

group_obj = df.groupby('sku')

2、查看分组对象类型

type(group_obj)
20181218204526362.png

3、查看分组对象的方法(函数)

print([func for func in dir(group_obj) if not func .startswith('_')])
#startswith() 方法用于检查字符串是否是以指定子字符串开头,
# 如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。
20181218204815732.png

4、查看分组数量

group_obj.ngroups
20181218204726374.png

5、查看各分组

group_obj.groups
20181218204653129.png

6、查看各分组索引

group_obj.indices
20181218204605610.png

7、查看各分组的唯一识别标签

list(group_obj.groups.keys())
20181218204526362.png

8、获取某个分组数据

group_obj.get_group(283652801)
20181218204414329.png

9、group_obj分组对象可迭代

for name, group in group_obj:
    print(name)
    display(group)
20181218205341469.png

10、group_obj对象使用head方法

可以在一个DataFrame中显示每个分组的前几行

group_obj.head(2).head(10)  #每个分组显示两行,共八行(设定十行,但数据只有八行可显示)
20181218205547132.png

11、nth方法可以选出每个分组指定行的数据

group_obj.nth([0,2]).head(8)#选出第1行和第3行
20181218205722151.png

下一篇(聚合):详解pandas数据分析之groupby分组聚合(下)

敬请关注,谢谢!

上一篇下一篇

猜你喜欢

热点阅读