【发布时间】:2021-09-20 00:40:03
【问题描述】:
我正在处理候选人的工作申请,一些候选人提交了多个申请,我的目标是将数据集减少到每个候选人的最新申请。
我的代码如下:
import pandas as pd
data = {'application_date' : ["9/11/2020 10:30:31", "9/11/2020 11:07:59", "9/11/2020 11:09:02", "9/14/2020 13:14:31", "9/14/2020 13:15:15"],
'candidate_id' : ["001", "002", "002", "002", "002"]
}
df = pd.DataFrame(data)
df['application_date'] = pd.to_datetime(df['application_date'])
df['rank_application'] = df.groupby('candidate_id')['application_date'].rank(method='first')
这将返回以下内容:
application_date candidate_id rank_application
0 2020-09-11 10:30:31 001 1.0
1 2020-09-11 11:07:59 002 1.0
2 2020-09-11 11:09:02 002 2.0
3 2020-09-14 13:14:31 002 3.0
4 2020-09-14 13:15:15 002 4.0
这就是我卡住的地方。从这里我不知道如何只将df减少到每个candidate_id最近的。我最初希望按降序排序,然后弄清楚如何获取 rank_application = 1 的行(但我无法弄清楚)
【问题讨论】: