python:pandas:如何基于groupby另一列在列中查找最大值

python:pandas:如何基于groupby另一列在列中查找最大值,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我想基于一个列服务器对数据帧进行分组,然后在另一个列JOB_ID中查找最大值。 DF: 当我在代码下面运行时 DF_FINAL = DF.groupby(['SERVER']).agg({'JOB_ID':'max'}) 低于产量 SERVER JOB_ID LOG_FILE TIME 20 abc_123 9 1/abc_123/dep2/9/123.log 2019-12-04T16:53:54.236Z

我想基于一个列服务器对数据帧进行分组,然后在另一个列JOB_ID中查找最大值。 DF:

当我在代码下面运行时

DF_FINAL = DF.groupby(['SERVER']).agg({'JOB_ID':'max'})
低于产量

          SERVER   JOB_ID     LOG_FILE                 TIME
20   abc_123      9   1/abc_123/dep2/9/123.log  2019-12-04T16:53:54.236Z
预期产量

13   abc_123     21  1/abc_123/dep2/21/123.log  2019-12-05T04:14:54.228Z

我提到了这个。但是它没有给我正确的答案。

作业ID
不是数字,而是字符串(数据类型是
对象
),因此需要在解决方案之前将其转换为数字:

DF.JOB_ID = DF.JOB_ID.astype(int)
如果上述解决方案不起作用,因为某些非数值使用:

DF.JOB_ID = pd.to_numeric(DF.JOB_ID, errors='coerce')
索引标签的最后一次使用:


这应该像预期的那样起作用。作业ID的数据类型是什么?如果它是
object
将其更改为
int
。看起来作业Id是字符串类型。当我检查DF_FINAL.job_Id.dtype时,它显示“object”。感谢shaik和Quang,数据类型是问题所在。现在开始工作了。
DF.JOB_ID = pd.to_numeric(DF.JOB_ID, errors='coerce')
DF_FINAL = DF.loc[DF.groupby('SERVER')['JOB_ID'].idxmax()]