计算出租车费用问题python

计算规则:

  • 起步费用:判断是否满足是否属于起步公里,后面的算法会对不同的时间点的起步也设置不同的起步费用价格

  • 里程费用:(实际里程公里-起步公里)*不同起步时间的里程单价

  • 时长费用: (计费时长-起步时间)*不同起步时间的时间单价

  • 超路程费用:(实际里程公里-超路程公里)*超路程的公里费用

  • 总费用=起步费用+里程费用+时长费用+超路程费用

def  calculate_user_id_before(city,order_type,models,ctime,Beyond_km,billing_time):
    for index,row in df_user_id_before.iterrows():
        if row['城市'] == city and row['起点时间'] <= ctime and row['终点时间'] >= ctime and row["订单类型"]==order_type and row['用车类型']==models:
            if Beyond_km<row['起步公里'] and billing_time<row['起步时间']:
                return row["起步费用"]
            elif Beyond_km<row["起步公里"] and billing_time>row['起步时间']:
                return (billing_time-row["起步时间"])*row["时长单价"]+row["起步费"]
            elif Beyond_km>row["起步公里"] and billing_time<row['起步时间']:
                return  (Beyond_km-row["起步公里"])*row["里程单价"]+row["起步费"]
            elif Beyond_km>row["起步公里"] and Beyond_km<row["预估临界公里"] and billing_time>row['起步时间']:
                return (billing_time-row["起步时间"])*row["时长单价"]+(Beyond_km-row["起步公里"])*row["里程单价"]+row["起步费"]
            elif Beyond_km>row["预估临界公里"] and billing_time>row['起步时间']:
                return (Beyond_km-row['预估临界公里数'])*row["超过临界里程单价"]+(billing_time-row["起步时间"])*row["时长单价"]+\
            (Beyond_km-row["起步公里"])*row["里程单价"]+row["起步费"]
            else:
                return "基础数据有可能错误"

df['改乘客原价格'] = df.apply(lambda x: calculate_user_id_before(x['城市'], x['订单类型'],x['呼叫车级'],x['time'],x['实际公里(公里)'],x['计费时长']), axis=1)

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值