我下面有2个数据框:
myEvents
:
id events
1 e1||e2
2 e2
3 e2||e3||e4
以及活动的结束日期:
eventEndDate
:
event endDate
e1 2019-01-26T10:35:47-05:00
e2 2020-01-26T10:05:51-05:00
e3 2020-01-28T10:05:51-05:00
e4 1970-01-01T00:00:00-05:00
我想在myEvents
中添加一列,以显示最新活动的结束日期,因此:
id events latest_end_date
1 e1||e2 2020-01-26T10:05:51-05:00
2 e2 2020-01-26T10:05:51-05:00
3 e2||e3||e4 2020-01-28T10:05:51-05:00
也许第一步是将eventEndDate
读到字典中,然后如何创建映射函数以提取第一个数据帧中具有最大结束日期的事件?
地图是正确的第一步。一旦拥有它,创建一个UDF,它将解压缩事件并找到最新的对应时间戳。
def find_latest_end_date(row):
end_dates = [eventEndDateDict[event] for event in row['events'].split('||')]
return max(end_dates)
myEvents['latest_end_date'] = myEvents.apply(find_latest_end_date, axis=1)