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

如何将同CaseNr的多行事故数据按列合并为单行?

车辆事故关联行合并实现方案

你检索merge相关操作找不到实现方式是正常的,这个需求不属于多表关联场景,本质是将同事故编号下的多行车辆数据,从长表结构转为宽表结构,通过分组透视即可实现,不需要关联操作。

核心处理步骤

  • 按事故编号CaseNr分组,给同一起事故内的涉事车辆生成从1开始的递增序号,作为后续拆分列的后缀标识
  • 保留事故维度的固定公共字段(CaseNr、AccType,同一起事故下这两个字段值完全一致),将车辆维度的属性字段按生成的序号展开为多列
  • 无对应车辆的字段自动填充NaN,最后按业务规则补充MainFac字段即可

参考实现代码(pandas环境)

import pandas as pd
import numpy as np

# raw_df为读取的原始事故数据表
# 1. 为同事故下的车辆生成序号
raw_df['v_seq'] = raw_df.groupby('CaseNr').cumcount() + 1

# 2. 透视转换为宽表
wide_df = raw_df.pivot(
    index=['CaseNr', 'AccType'],
    columns='v_seq',
    values=['Vehicle', 'Model', 'VehicleMass']
)

# 3. 格式化列名为 字段名_序号 的格式
wide_df.columns = [f'{col[0]}_{col[1]}' for col in wide_df.columns]
wide_df = wide_df.reset_index()

# 4. 按需调整列名、补全字段
# 例如需要把VehicleMass_2改为带空格的Vehicle Mass_2,直接调用rename即可
wide_df = wide_df.rename(columns={'VehicleMass_2': 'Vehicle Mass_2'})
# 新增MainFac字段,按自身业务规则赋值即可,默认先填充NaN
wide_df['MainFac'] = np.nan

说明:如果单起事故最多涉及3台车辆,代码会自动生成带_3后缀的对应车辆字段,如果目标表不需要第三台车辆的字段,直接drop对应列即可;也可以通过reindex方法指定列顺序,和你预期的目标表字段顺序完全对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:57:32