如何使用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
mean()
只有每个ID的前三行 行?mean()
?例如:
df.groupby(['id'])['summary'].mean()
将计算每个组的mean()(由id定义),但它会占用所有行。
答案 0 :(得分:2)
以下将获得前三行的平均值和一些掩码的平均值。
df.groupby('id')['summary'].agg([lambda x: x.iloc[:3].mean(), lambda x: x[mask].mean()])