python - 如何通过熊猫数据框中的值组找到 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()
解决方案
试试这个表达式:
df.groupby('grps').apply(lambda x: x.vals.nlargest(3).sum())
推荐阅读
- node.js - 节点 Postgres COPY FROM 静默失败
- sql - Excel VBA SQL ADODB 未将行插入工作表(无错误)
- indexing - 多次使用包含相同数字的集合
- python - 如何定义一个函数来根据多个条件汇总和选择数据?
- spring - 保护 Spring (4.2.8.RELEASE) Http Remote 方法导致错误创建 bean/找不到匹配的工厂方法:工厂 bean
- r - 如何在 R 中的数据点标签中创建下标?
- java - thymeleaf 中字符串的参数
- expression - 如何在后期效果中使视频剪辑“闪烁”
- react-native - 尽管存在 Podfile,AppCenter 似乎没有运行 pod install
- html - 与网页交互以使用 R 下载数据