首页 > 解决方案 > 如何通过熊猫数据框中的值组找到 n 个最大值的总和?

问题描述

DataFrame 有两列组“grps”和值“vals”:

df = pd.DataFrame({'grps': list('aaabbcaabcccbbc'), 
                   'vals': [12,345,3,1,45,14,4,52,54,23,235,21,57,3,87]})

对于每个组,我必须找到三个最大值的总和。我应该最终得到一个数据框,如下所示:

grps
a    409
b    156
c    345

我已经尝试过了,但它不起作用:

df.groupby('grps').nlargest(3, 'vals').sum()

标签: pythonpandasdataframepandas-groupby

解决方案


试试这个表达式:

df.groupby('grps').apply(lambda x: x.vals.nlargest(3).sum())

推荐阅读