使用GroupBy在特定行上应用函数

时间:2017-03-23 19:18:58

标签: python pandas group-by

如何使用GroupBy计算特定行上的mean()或其他函数。请考虑以下数据框:

 In[239]: df.groupby(['id'])['summary']
Out[239]: 
                summary
id         
11                  2.0
11                  3.0
11                  3.0
11                  3.0
11                  3.0
11                  3.0
14                  NaN
14                  NaN
14                  NaN
14                  NaN
14                  NaN
14                  2.0
17                  NaN
17                  NaN
17                  NaN
17                  NaN
17                  5.0
17                  5.0
18                  4.0
18                  5.0
18                  4.0
18                  3.0
18                  3.0
18                  4.0
23                  2.0
23                  1.0
23                  2.0
23                  1.0
23                  3.0
23                  1.0
                ...
81                 10.0
81                  9.0
81                  8.0
81                  8.0
81                  9.0
81                  9.0
82                  0.0
82                  0.0
82                  0.0
82                  0.0
82                  0.0
82                  0.0
83                  1.0
83                  0.0
83                  1.0
83                  2.0
83                  2.0
83                  1.0
84                  2.0
84                  0.0
84                  0.0
84                  0.0
84                  1.0
84                  NaN
85                  5.0
85                  4.0
85                  4.0
85                  5.0
85                  5.0
85                  4.0
  1. 如何计算 mean()只有每个ID的前三行 行?
  2. 如何计算每个ID中 蒙面 (包含某些条件的索引)行的mean()
  3. 例如:

    df.groupby(['id'])['summary'].mean()
    

    将计算每个组的mean()(由id定义),但它会占用所有行。

1 个答案:

答案 0 :(得分:2)

以下将获得前三行的平均值和一些掩码的平均值。

df.groupby('id')['summary'].agg([lambda x: x.iloc[:3].mean(), lambda x: x[mask].mean()])