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

如何向pandas DataFrame中按零件所属集合数量新增行并填充关联零件号

实现方案

直接通过分组自连接+过滤自匹配行即可实现需求,代码简洁易读,适配绝大多数场景:

1. 测试数据构造

我们先构造符合描述的初始数据集作为验证:

import pandas as pd

# 初始数据,set_id为所属集合编号,part_id为零件编号
df = pd.DataFrame({
    "set_id": ["A", "A", "A", "B", "B"],
    "part_id": ["P1", "P2", "P3", "Q1", "Q2"]
})

2. 核心处理逻辑

# 按所属集合做自连接,生成所有同集合零件的两两组合
res = df.merge(df, on="set_id", suffixes=("_source", "_target"))
# 过滤掉零件和自身配对的无效行
res = res[res["part_id_source"] != res["part_id_target"]].reset_index(drop=True)

3. 效果验证

上述代码处理后输出的结果完全符合需求:

  • 集合A共有3个零件,每个零件生成2条配对行,合计6行
  • 集合B共有2个零件,每个零件生成1条配对行,合计2行
  • 每行都包含源零件编号,以及同集合下的另一个配对零件编号

如果需要调整配对列的名称,直接修改merge方法的suffixes参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:27:02