你好,我有这样的数据:
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_cap每一个独特的竞选基于最大日期。我试图通过使用for循环来解决这个问题,但我认为这不是最好的解决方案。
发布于 2019-10-19 08:27:05
如果我没听错,你需要:
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]https://stackoverflow.com/questions/58461802
复制相似问题