pandas - 根据分组查找第三列 - Pandas
问题描述
我有三列 id、score1、score2。我需要根据第 3 列创建第四列,列 id 可以分组为 score1 和 score2 是 id 的记录。这是桌子。
id score1 score2
1 6 10
1 5 12
2 11 22
2 3 15
第四列应包含 score1 列中的值,条件是它应返回组中 score2 最大的值。
因此,对于上表, score3 表具有如下值。
id score1 score2 score3
1 6 10 5
1 5 12 5
2 11 22 11
2 3 15 11
解决方案
尝试transform
df['score3']=df.groupby('id').score1.transform('max')
df
Out[411]:
id score1 score2 score3
0 1 5 10 6
1 1 6 12 6
2 2 11 22 11
3 2 3 15 11
检查与
df.id.map(df.groupby('id').score3.idxmax().map(df.score1))
Out[415]:
0 5
1 5
2 11
3 11
Name: id, dtype: int64
推荐阅读
- mysql - 将数据从 MySQL 数据库部分加载到 Tableau
- excel - 如何合并行而不丢失excel中的数据
- vba - WinHttp.WinHttpRequest.5.1 URL 编码
- linux-kernel - 为什么 sys_futex 上的 kretprobe 调用频率低于相应的 kprobe?
- node.js - Puppeteer 无法识别链接
- python - 使用 super() 进行直接多重继承时保持可读性
- java - Android 我是否使用多个 ClassLoader/PathClassLoader?
- json - 请求参数 RefreshType 格式不正确
- java - 如果直接使用传递依赖,gradle build 会失败?
- python - 我不能在 python 3.x 中乘以数字