Python Pandas按c3分组,找到第2列的最大值,得到第1列

2024-09-30 16:19:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在python中反映一些复杂的SQL操作。从最初开始-要求是找出谁是最高工资的部门明智。 3个步骤:

  1. Groupby(部门)

  2. 最高工资-每个部门

  3. 获取(Emp_Id)-在每个部门

样品文件.csv在

EMP_ID,NAME,AGE,ADDRESS,SAL,DEPT,LOC
1,ghk,3,PTBP,23,IME,bhmd
2,ghk,3,PTBP,23,IME,bhmd
3,ghk,3,PTBP,23,IME,bhmd
4,ghk,3,PTBP,23,IME-DATA,bhmd
5,ghk,3,PTBP,24,IME-DATA,bhmd
6,ghk,3,PTBP,23,IME,bhmd
7,ghk,3,PTBP,23,IME,bhmd
8,ghk,3,PTBP,29,IME-NA,bhmd
9,ghk,3,PTBP,23,IME,bhmd
10,ghk,3,PTBP,23,IME-NA,bhmd

我试过的代码:

^{pr2}$

但各部门都没能拿到最高工资和员工身份证。 请在这方面帮助我,因为我是Python熊猫的新蜜蜂。在


Tags: 文件csvidsqldata样品步骤部门
1条回答
网友
1楼 · 发布于 2024-09-30 16:19:42

您可以使用group.transform method。在

基本上,这条线:

df['DEPT_MAX_SAL'] = df.groupby('DEPT')['SAL'].transform(lambda x: x.max())

把部门最高工资放在每一行,然后你要做的就是从那里子集。我已经在您的数据中包含了实现的IPython。请注意,由于示例数据在SAL字段上没有太多变化,因此该示例看起来并不特别干净。在

^{pr2}$

相关问题 更多 >