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

Python Pandas按PO Header ID分组并拼接对应XML字符串的实现方法

问题解决说明

报错根因

  • 列名大小写不匹配:你原始数据的分组列名为PO Header ID(末尾ID为全大写),但代码中写的是PO Header Id(末尾d为小写),是触发KeyError的直接原因,可先执行print(df.columns)确认实际列名的完整写法。
  • 聚合逻辑错误:你需要合并的是同分组下的XML字段内容,无需将XML放入分组键,也不需要提前调用不存在有效值的Combined_XML列参与聚合。

正确实现代码

通用写法(适配所有Pandas版本)

# 按PO Header ID分组,拼接同组所有XML字符串,重命名为目标列名
combineXML = df.groupby('PO Header ID', as_index=False)['XML'].agg(
    lambda x: ''.join([i.strip() for i in x]) # strip可去除原始XML前后的多余空格,不需要可以删掉
).rename(columns={'XML': 'Combined_XML'})

简化写法(适配Pandas 1.3及以上版本)

combineXML = df.groupby('PO Header ID', as_index=False)['XML'].agg(''.join).rename(columns={'XML': 'Combined_XML'})

执行后combineXML就是你需要的输出结果。

原代码逻辑问题说明

  • 将XML放入groupby的分组键中,会导致每个唯一的「PO Header ID+XML」组合单独成为分组,无法实现同PO下多行XML合并的效果
  • 调用不存在有效值的Combined_XML列参与聚合,原始数据中该列是最终要生成的结果列,初始无有效内容可以用来拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:15:00