使用 idmax() 的 Groupby 数据框中的最大值

Max Value in a Data Frame with Groupby using idmax()

我有一个包含 10 列的数据框。

我使用此代码过滤到我想要的行:基本上,修订日期小于截止日期(声明的变量)且职位名称在提供的列表中的行。

aggregate = df.loc[(df['RevisionDate']<= cutoff_date) & (df['JobTitle'].isin(['Production Control Clerk','Customer Service Representative III, Data Entry Operator I','Accounting Clerk II','General Clerk III','Technical Instructor']))]

然后,我需要按 WD 列(有多个)对它们进行分组,然后按职位名称(同样,多个)对它们进行分组。所以我这样做了:

aggregate1 = aggregate.groupby(['WD','JobTitle'])

这会生成一个数据框对象,该对象具有所需的行,并且仍然是全部 10 列。

然后,从这个较小的数据框中,我只需要提取具有最高(最大)修订号的行。

aggregate1 = aggregate.max('RevisionNumber')

然而,这最后一步生成了一个数据框,但只有 3 列:WD、职位名称和修订号。我需要所有 10 列。

根据我在这里看到的其他问题,我尝试使用 idmax():

df2 = aggregate.loc[aggregate.groupby(['WD','JobTitle'])['RevisionNumber'].idmax()]

但是我得到这个错误:

AttributeError: 'SeriesGroupBy' object has no attribute 'idmax'

我做错了什么?

如果先排序,可以取每组的第一行

aggregate.sort_values(by='RevisionNumber', ascending=False).groupby(['WD','JobTitle']).head(1)