python - 按多列对数据框进行分组
问题描述
我想按多列对 Pandas 数据框进行分组。每行都有一个整数、一个名称和一个附加数值。我希望最终的 Dataframe 包含 Name 具有最大整数的每一行。
values = {'Int': [1,1,1,2,2,1],
'Name': ['Tom', 'Jim', 'Jan','Tom', 'Tom', 'Lucas'],
'Bill':[0.5,0.2,0.2,0.7, 0.8, 0.2]}
df = pd.DataFrame.from_dict(values)
Int Name Bill
0 1 Tom 0.5
1 1 Jim 0.2
2 1 Jan 0.2
3 2 Tom 0.7
4 2 Tom 0.8
5 1 Lucas 0.2
通过对数据框进行分组,只有第 0 行应该消失。第 3 行和第 4 行仍应包含在数据框中。
解决方案
IIUC,您可以将Int列与每个Name的最大 Int 进行比较,如下所示:
df[df['Int'] == df.groupby('Name')['Int'].transform('max')]
output:
Int Name Bill
1 1 Jim 0.2
2 1 Jan 0.2
3 2 Tom 0.7
4 2 Tom 0.8
5 1 Lucas 0.2
推荐阅读
- asp.net - ORA-03134: 不再支持与此服务器版本的连接
- python - 检查列表项是否在其他列表的 [x][0] 中并理解
- python - 有没有更优雅/优化的方法可以制作这种连接算法?
- android - 在 kotlin 中,赋值如何成为 lambda
- tensorflow - 在空间轴上计算 Pytorch 中的方差
- python - 我想列出 NSE 指数中的公司
- r - 如何从 R 中的 animate 函数中保存 GIF 图像?
- excel - 运行 vba 代码后的输出被删除,不是每次而是每次交替时间
- git - 如何以用户而非管理员身份访问 git
- vue.js - 有没有办法从特定文件夹导入全局组件列表?