python - 如何在与特定的分组时替换值?
问题描述
我有一个数据框:
id type val
a1 q 100
a1 v 4
a1 l 17
b1 p 1
b1 j 700
b1 s 3
我想按 id 分组,并在列 val 中保留列类型和求和值。列类型中的值必须是具有最高 val 的值。所以期望的结果必须是:
id type val
a1 q 121
b1 j 704
id a1 的类型是 q,因为它具有最高 val (100),b1 是 j,因为它具有最高 val (700)。怎么做?
解决方案
你可以试试这个:
df.sort_values(by='val', ascending=False).groupby('id').agg({'type': 'first', 'val': 'sum'})
它给:
type val
id
a1 q 121
b1 j 704
推荐阅读
- vba - 合并字母中的 VBA 表
- javascript - RTCPeerConnection connectionState 永远不会从“new”变为“checking”/“connected”
- javascript - mongoose 查询的同步执行
- crystal-reports - 使用 Crystal 语法在 Crystal Report 中将数字转换为单词
- php - 如何在 Laravel 中使用中止发送消息
- javascript - CKEDITOR 不起作用并且出现错误 can not read property 'getEditor' at ckeditor.js:321
- dart - 保留或恢复页面状态的抽屉导航
- powershell - 根据文件名将 PDF 打印到特定打印机
- javascript - javascript计数键值对
- python - python 通过门户网站登录