文章目录
- 获取数据
- 分组使用聚合函数做数据统计
- 单个列groupby,查询所有数据列的统计
- 多个列groupby,查询所有数据列的统计
- 同时查看多种数据统计
- 不同列使用不同的聚合函数
- 遍历groupby的结果理解执行流程
- 实例分组探索天气数据
groupby
首先按照key
进行分组,就可以得到每个groupby
的名称,以及group
本身,而group
本身是一个dataframe
或者一个series
,然后在这个dataframe
或者series
进行统计。统计完成之后会将key
和统计结果拼合起来。
获取数据
分组使用聚合函数做数据统计
单个列groupby,查询所有数据列的统计
将属性A
进行分组,之后再对其属性求和:
这里要注意两点:
-
groupby
中的'A'
变成了数据的索引列。 - 因为要统计
sum
,但B
列不是数字,所以被自动忽略掉。
多个列groupby,查询所有数据列的统计
上面这种方式('A','B')
成对变成了二级索引,如果想要去除这种二级索引的方式,可以设置as_index=False
:
同时查看多种数据统计
如果想看多种数学统计信息,比如像均值,求和,均方差这些可以采用.agg
方法:
从上面的结果可以看到:列变成了多级索引。如果只想看单列的数据统计可以采用两种方法,比如只想看C
这一大列的,可以在统计之前选中,也可以在统计之后索引:
- 统计之前选中:
- 统计之后选中:
统计之前选中的这种方法明显要节省计算开销。
不同列使用不同的聚合函数
除此之外,还可以对不同列使用不同的聚合函数,比如对C
这一列使用求和函数,对mean
这一列使用求均值。
遍历groupby的结果理解执行流程
我们可以for
循环看一下group
之后的数据格式:
可以看到group
之后的数据格式是DataFrameGroupBy
。因为依据"A"
划分,所以其有两组数据。我们可以使用get_group
方法单独获取某个分组:
上述的结果是单列的聚合,如果是多列的话,那么列于列之间的数值就会发生排列组合,利用groupby
方法也是可以聚合的:
可以看到,name
是一个2
个元素的tuple
,代表不同的列。
同样利用get_group
方法可以查看到分组之后的一个子dataframe
情况。
如果分组之后,只想查看某几列的分组情况,可以采用以下方法:
实例分组探索天气数据
- 读取数据:
- 新增一列为月份:
- 查看每个月的最高温度:
- 查看每个月的最高温度、最低温度、平均空气质量指数: