groupby 可以根据一个数据框的部分数据,将整个数据框进行分组,简称:聚合。聚合之后,可以按组进行对数据进行统计分析。
pandas
1 | In [10]: df = pd.DataFrame({'key1' : ['a', 'a', 'b', 'b', 'a'], |
1 | In [12]: grouped = df.groupby('key1') #按key1进行分组 |
1 | In [14]: grouped.mean() #调用GroupBy的mean方法来计算分组平均值: |
1 | In [15]: means = df.groupby(['key1', 'key2']).mean()['data1'] #按key1和key2分组,选出data1数据 |
1 | In [35]: people = pd.DataFrame(np.random.randn(5, 5), |
1 | In [44]: people.groupby(len).sum() #用python函数分组将使用index |
聚合运算方法
1 | In [54]: def peak_to_peak(arr): |
1 | In [69]: grouped.agg(['mean','size']) #使用多个统计方法 |
R
1 | library(dplyr) #group_by和summarise都在dplyr包中 |
常用的摘要函数
1 | mean() sd() min() max() first() last() n() sum() |
聚合函数和逻辑筛选结合
1 | delay <- summarise(planes, |
1 | In [53]: grouped = df[df.data1>0].groupby('key1') #逻辑筛选后按key1进行分组 |