我有一个数据框,想要找到每个组中两个最大值的总和。
我能够找到两个最大的,使用groupby,然后是nlargest。但是,这样做似乎不能保留“组”值本身,允许我计算这些前两个的总和。结果,我使用下面的代码得到错误。
import pandas as pd
df = pd.DataFrame({'group': list('aaabccaaaccbbbc'),
'vals': [12,341,3,2,45,24,4,51,54,21,231,21,51,31,87]})
top_2 = df.groupby('group')['vals'].nlargest(2)
top_2.groupby('group')['vals'].sum()
我的预期输出是:
a 395
b 82
c 318