重置索引应该可以。尝试这个:
In [19]: df.groupby(['id', 'mth']).sum().reset_index().groupby('id').mean()
Out[19]:
mth cost
id
1 4.0 33.333333
2 4.0 86.666667
您可以随意放下mth
。逻辑是,在完成sum
部分之后,您将具有以下内容:
In [20]: df.groupby(['id', 'mth']).sum()
Out[20]:
cost
id mth
1 3 30
4 30
5 40
2 3 50
4 130
5 80
此时重置索引将为您提供独特的月份。
In [21]: df.groupby(['id', 'mth']).sum().reset_index()
Out[21]:
id mth cost
0 1 3 30
1 1 4 30
2 1 5 40
3 2 3 50
4 2 4 130
5 2 5 80
只需将其再次分组即可,这次使用mean
代替sum
。这应该给您平均值。
让我们知道是否有帮助。