首页 > 解决方案 > 获取与每个 ID 关联的最小日期的行

问题描述

我有一个带有多个 ID 的 pandas 数据框,并且在其他列中我有一个日期列说:'date1'。我想获取与所有 ID 关联的最小日期的所有行。其他列值也应保留。

我有的:

ID   date1        value
1    1/1/2013     a
1    4/1/2013     a
1    8/3/2014     b
2    11/4/2013    a
2    19/5/2016    b
2    8/4/2017     b

我想要的输出:

ID   date1      value
1    1/1/2013   a
2    11/4/2013  a

谢谢

标签: pythonpython-3.xpandasdate

解决方案


假设您有 IDID和日期DATE

df.groupby('ID')['DATE'].min()

按您的 ID 分组,然后选择每个组中的最小值。返回一个系列。如果您想要一个数据框,请调用_.reset_index()输出。

如果您只想选择最少的行,我会将输出设置为键,new_df.join(old_df.set_index(['ID', 'DATE'])而不是处理一些基于索引的恶作剧。


推荐阅读