从 Pandas 数据框中获取具有最大日期的行

use*_*949 6 python pandas

我有一个看起来像这样的熊猫数据框:

在此处输入图片说明

我想为每个不同的 ID 获取最大日期的行,以便我的最终结果如下所示:

在此处输入图片说明

我的日期列的数据类型为“对象”。我尝试过分组,然后尝试获取最大值,如下所示:

idx = df.groupby(['ID','Item'])['date'].transform(max) == df_Trans['date']
df_new = df[idx]
Run Code Online (Sandbox Code Playgroud)

但是我无法得到想要的结果。对这个问题的任何帮助将不胜感激!

piR*_*red 8

idxmax

只要index唯一或最大索引不重复就应该工作。

df.loc[df.groupby('ID').date.idxmax()]
Run Code Online (Sandbox Code Playgroud)

OP(已编辑)

只要最大值是唯一的就应该工作。否则,您将获得等于最大值的所有行。

df[df.groupby('ID')['date'].transform('max') == df['date']]
Run Code Online (Sandbox Code Playgroud)

WB 转到解决方案

也是很好的解决方案。

df.sort_values(['ID', 'date']).drop_duplicates('date', keep='last')
Run Code Online (Sandbox Code Playgroud)

  • @user3116949 :-) 在解决您的问题时,您可以随时接受答案 (2认同)