对于每个与类别匹配的ID,我想找到与最新日期相对应的行,然后在另一列中返回该条目。
这里有MRE。
exFilterDF= pd.DataFrame([['1234','1234','1234','5678','5678','5678','9TJQ','9TJQ','9TJQ'],\
['good','ignore','good','good','good','ignore','good','good','ignore'],
['2017-11-10 12:40:07','2017-12-18 14:00:07','2017-12-13 17:40:07','2017-12-12 11:40:07','2017-12-19 16:40:07'\
,'2017-10-26 17:40:07','2017-12-13 17:40:07','2017-12-27 13:40:07','2017-10-12 13:40:07'],
['ReturnA','ReturnB','ReturnC','ReturnD','ReturnE','ReturnF','ReturnG','ReturnH','ReturnI']]).transpose()
exFilterDF.columns = ["ID","Category","Date","Result"]
exFilterDF
最终答案应该是
answerDF= pd.DataFrame([['1234','5678','9TJQ'],['ReturnC','ReturnE','ReturnH']]).transpose()
answerDF.columns = ["ID","Result"]
answerDF
这将像我问过的问题here
一样开始不幸的是,我不能仅仅匹配已经找到的max(date),因为,例如,在这个集合中,2017-12-13 17:40:07
是ReturnC
行的正确日期,但是相同时间戳记位于ReturnG
行中(不应返回),因此,如果我们通过标记“好日期”并对其进行过滤来处理,则会得到额外的(错误的)结果。