Python 获取唯一行值的最大日期
你好,我有这样的数据:Python 获取唯一行值的最大日期,python,python-3.x,pandas,Python,Python 3.x,Pandas,你好,我有这样的数据: campaign status d_cap date 2019-10-07 campaign_1 start 400 2019-10-13 campaign_2 start 400 2019-10-14 campaign_1 change 1000 2019-10-14 campaign_2 change 800 2019-11-10
campaign status d_cap
date
2019-10-07 campaign_1 start 400
2019-10-13 campaign_2 start 400
2019-10-14 campaign_1 change 1000
2019-10-14 campaign_2 change 800
2019-11-10 campaign_1 stop 0
2019-11-12 campaign_2 change 2000
所需输出:
campaign status d_cap
date
2019-11-10 campaign_1 stop 0
2019-11-12 campaign_2 change 2000
所以我想根据最长日期获得每个独特活动的最后状态和d_上限。我试图用for循环来解决这个问题,但我认为这不是最好的解决方案 如果我理解正确,您需要:
group = pdf.groupby(["date", "campaign"]).agg({"status": "last", "d_cap": "last"}).reset_index()
# Get indexes of the max date per group
idx = pdf.groupby(['campaign'])['date'].transform(max) == pdf['date']
# Filter the df
final = pdf[idx]
如果我理解正确,您需要:
group = pdf.groupby(["date", "campaign"]).agg({"status": "last", "d_cap": "last"}).reset_index()
# Get indexes of the max date per group
idx = pdf.groupby(['campaign'])['date'].transform(max) == pdf['date']
# Filter the df
final = pdf[idx]
到目前为止你尝试了什么?到目前为止你尝试了什么?谢谢你的回答,但这并不是我想要的。在您的示例中,您在所有类别中获得了最大命运(在我的示例活动中),但我需要得到的是每个活动名称的最大日期。活动\u 1最大日期可以不同于活动\u 2最大日期。首先使用每个组的最大日期进行筛选。明白了。我将编辑我的答案。我会得到每个小组的最长日期谢谢你的回答,但这不是我想要的。在您的示例中,您在所有类别中获得了最大命运(在我的示例活动中),但我需要得到的是每个活动名称的最大日期。活动\u 1最大日期可以不同于活动\u 2最大日期。首先使用每个组的最大日期进行筛选。明白了。我将编辑我的答案。我将得到每组的最长日期