返回 Skill 列表
extension
分类: 开发与工程无需 API Key

table_content_completion

table-content-completion

person作者: shangyi0610hubModelScope

表格内容补全

任务目标

  • 本 Skill 用于:基于参考表格 B 的内容,自动补全目标表格 A 中的指定列
  • 能力包含:支持 Excel/CSV 格式、精确匹配和包含匹配、覆盖原列或新增列、灵活的未匹配处理
  • 触发条件:用户需要"根据一个表格补全另一个表格"、"关联两个表格数据"、"批量查找并替换内容"时

前置准备

  • 依赖说明:脚本依赖 pandas 和 openpyxl,用于表格文件处理
  • 文件准备:确保目标表格 A 和参考表格 B 已上传到当前目录(使用相对路径 ./ 引用)

操作步骤

标准流程

  1. 确认参数信息

    • 向用户确认以下关键参数:
      • 表格 A 和 B 的文件名(支持 .xlsx/.xls/.csv)
      • A 表格中需要被匹配的列名
      • B 表格中用于匹配的列名
      • B 表格中用于取内容的补全列名
      • 匹配方式(精确匹配/包含匹配)
      • 保存方式(覆盖原单元格/新增列)
      • 未匹配时的处理(保留原值/留空)
  2. 调用补全脚本

    • 脚本调用示例(精确匹配 + 新增列):
      python scripts/table_completion.py \
        --file_a ./data.xlsx \
        --file_b ./reference.xlsx \
        --a_match_col "产品代码" \
        --b_match_col "代码" \
        --b_fill_col "完整名称" \
        --match_mode exact \
        --save_mode new_column \
        --new_col_name "补全后的名称" \
        --unmatched_action empty \
        --output_path ./completed_data.xlsx
      
    • 脚本调用示例(包含匹配 + 覆盖原列):
      python scripts/table_completion.py \
        --file_a ./products.csv \
        --file_b ./keywords.csv \
        --a_match_col "名称" \
        --b_match_col "关键词" \
        --b_fill_col "扩展描述" \
        --match_mode contain \
        --save_mode overwrite \
        --unmatched_action keep \
        --output_path ./completed_products.csv
      
  3. 获取结果

    • 从脚本输出中提取:
      • 输出文件路径(供用户下载)
      • 统计信息(匹配成功/失败行数)
    • 将结果反馈给用户

参数说明

| 参数 | 必填 | 可选值 | 说明 | |------|------|--------|------| | --file_a | 是 | 文件路径 | 目标表格 A 的路径(将被补全的表格) | | --file_b | 是 | 文件路径 | 参考表格 B 的路径(提供补全内容的表格) | | --a_match_col | 是 | 列名字符串 | A 表格中用于匹配的列名 | | --b_match_col | 是 | 列名字符串 | B 表格中用于匹配的列名 | | --b_fill_col | 是 | 列名字符串 | B 表格中提供补全内容的列名 | | --match_mode | 否 | exact/contain | 匹配模式:精确匹配(默认)/包含匹配 | | --save_mode | 否 | overwrite/new_column | 保存方式:覆盖原单元格(默认)/新增列 | | --new_col_name | 否 | 字符串 | 新增列的列名(仅 save_mode=new_column 时需要) | | --unmatched_action | 否 | keep/empty | 未匹配处理:保留原值(默认)/留空 | | --output_path | 是 | 文件路径 | 输出文件的保存路径 |

使用示例

示例1:产品代码精确匹配补全

  • 场景/输入:产品数据表缺少完整产品名称,需要根据产品代码从参考表中补充
    • A 文件:./products.xlsx(包含"产品代码"列)
    • B 文件:./product_reference.xlsx(包含"代码"和"完整名称"列)
  • 预期产出:在 A 表格中新增"补全后的名称"列,填充匹配到的完整名称
  • 关键要点:
    • 使用精确匹配确保代码完全一致
    • 新增列保留原始数据,方便对比验证
    • 未匹配的单元格留空,便于后续人工处理

示例2:关键词包含匹配补全

  • 场景/输入:商品名称中包含品牌关键词,需要从品牌表中提取品牌描述
    • A 文件:./items.csv(包含"商品名称"列)
    • B 文件:./brand_info.csv(包含"品牌关键词"和"品牌描述"列)
  • 预期产出:用匹配到的品牌描述覆盖 A 表格的"商品名称"列
  • 关键要点:
    • 使用包含匹配,只要商品名称包含品牌关键词即可
    • 覆盖原列直接替换内容
    • 保留未匹配的原值,避免数据丢失

示例3:数据清洗与标准化

  • 场景/输入:旧系统导出的数据表中包含缩写代码,需要从标准映射表中补全全称
    • A 文件:./legacy_data.xlsx(包含"状态代码"列)
    • B 文件:./status_mapping.xlsx(包含"代码"和"状态全称"列)
  • 预期产出:新增"标准化状态"列,填充对应的全称
  • 关键要点:
    • 处理前后空格和大小写问题
    • 使用精确匹配确保准确性
    • 统计未匹配的代码,指导数据修正

资源索引

注意事项

  • 文件格式:自动识别 .xlsx/.xls/.csv 格式,输出文件格式与输入文件 A 保持一致
  • 空值处理:自动去除字符串列的首尾空格,处理 NaN/空值,确保匹配准确
  • 数据类型:匹配时会统一转为字符串处理,避免数字和字符串不匹配的问题
  • 性能优化
    • 精确匹配使用字典查找,速度快(适合大数据量)
    • 包含匹配需要遍历查找,速度较慢(建议单表不超过 10000 行)
    • 大文件处理建议先测试小样本,确认逻辑正确后再处理全量
  • 多匹配处理:如果匹配到多个结果,默认取第一个匹配的行
  • 错误处理:脚本会返回详细的错误信息,包括列不存在、文件格式不支持等情况