You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

人员相近行程日期合并算法实现与调试求助

行程合并算法求助

我编写了一段算法,用于识别人员的相邻行程,合并时间相近的行程的到达与离开日期,分离时间间隔较大的行程。

核心需求

  • 合并时间间隔在1天内的相近行程
  • 区分间隔较远的行程
  • 额外规则:仅当前后行程的国家代码同属俄罗斯(RUS)或同属非俄罗斯时,才进行合并判断;若前后行程分属RUS和非RUS,则直接新增行程

我的代码

trips = dict()
countries = dict()
passengers = dict()

for row in df.itertuples(index=False):
    party_rk, passenger, created_dt, arrival_dt, departure_dt, country_cd = row
    
    # 首次添加用户行程
    if trips.get(party_rk, 'Empty') == 'Empty':
        trips[party_rk] = []
        trips[party_rk].append([created_dt, arrival_dt, departure_dt])

        countries[party_rk] = []
        countries[party_rk].append(set(country_cd))
        
        passengers[party_rk] = []
        passengers[party_rk].append(set([tuple(passenger)]))
        
    else:
        trips_by_party = trips[party_rk]
        end_last_trip = trips_by_party[-1][1]
        previous_country_cd = countries[party_rk][-1]
        
        if (country_cd == 'RUS' and previous_country_cd == 'RUS') or (country_cd != 'RUS' and previous_country_cd != 'RUS'):
            # 若下一行程的到达时间与上一行程结束时间间隔≤1天,则合并行程
            if arrival_dt <= end_last_trip + datetime.timedelta(days=1):
                trips[party_rk][-1][1] = max(end_last_trip, departure_dt)
                countries[party_rk][-1].update(set(country_cd))
                add_person(passengers[party_rk][-1], passenger)
    
            # 间隔超过1天,新增行程
            else:
                trips[party_rk].append([created_dt, arrival_dt, departure_dt])
                countries[party_rk].append(set(country_cd))
                passengers[party_rk].append(set([tuple(passenger)]))
        else:
            # 前后行程国家分属RUS和非RUS,直接新增行程
            trips[party_rk].append([created_dt, arrival_dt, departure_dt])
            countries[party_rk].append(set(country_cd))
            passengers[party_rk].append(set([tuple(passenger)]))

示例数据期望处理结果

  1. 行程:2023-11-04 - 2023-11-11
  2. 行程:2024-04-13 - 2024-04-20

内容的提问来源于stack exchange,提问作者Tanya Gaychenkova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:23:10