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

Python日期处理错误修复:从TRIP_ID字符串提取日期至指定列

解决方案

1. 提取日期并替换第11列

从清理后的trip_id中,前4位是ID,剩余部分就是目标日期(比如740025Jun2014对应的25Jun2014)。直接通过trip_id[4:]提取日期,再替换输出行的第11列(Python索引为10,因为序列从0开始计数)即可。

2. 修正BIDGROUP行数值

假设BIDGROUP行需要调整为拆分后的TRIP_ID总数,我们可以先记录拆分后的ID数量,再找到BIDGROUP行修改对应列的数值(你可根据实际期望输出调整具体列索引)。

修改后的完整代码

import sys

lines = []
for line in sys.stdin:
    lines.append(line.strip())

output_lines = []
trip_count = 0  # 记录拆分后的TRIP_ID数量,用于BIDGROUP行修正

for line in lines:
    elements = line.split(", ")
    if elements[2] == '"ADVANCED_TRIP"':
        elements[2] = '"TRIP_ID"'
        trip_ids = elements[7].split(",")
        trip_count = len(trip_ids)  # 获取拆分后的TRIP_ID总数
        for i, trip_id in enumerate(trip_ids):
            trip_id = trip_id.strip('"')
            # 提取日期部分
            trip_date = trip_id[4:]
            output_line = elements[:7] + [f'"{trip_id[:4]}"'] + elements[8:]
            output_line[4] = str(int(output_line[4]) + i)
            # 替换第11列(索引10)的默认日期
            output_line[10] = f'"{trip_date}"'
            output_lines.append(output_line)
    else:
        # 修正BIDGROUP行的对应数值(示例为修改第5列,根据你的需求调整索引和逻辑)
        if elements[2] == '"BIDGROUP"':
            elements[4] = str(trip_count)
        output_lines.append(elements)

for output_line in output_lines:
    print(", ".join(output_line))

关键修改点说明

  • 新增trip_date = trip_id[4:]提取日期,通过output_line[10] = f'"{trip_date}"'替换第11列的默认值。
  • 新增trip_count变量记录拆分后的TRIP_ID数量,用于匹配BIDGROUP行的期望数值(若你的BIDGROUP行需要修改其他列,直接调整对应索引即可)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:06:22