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

如何在OpenRefine中用GREL/Python批量导入其他项目指定列

批量导入多列到OpenRefine现有项目(通过ID匹配)

方法一:使用GREL脚本(无需额外工具)

  1. 导入Project2为临时OpenRefine项目

    • 打开OpenRefine,导入Project2的TSV文件生成临时项目,确保项目包含用于匹配的id列,以及要导入的Column E、Column F。
  2. 导出临时项目为JSON格式

    • 在临时项目右上角点击「导出」→「导出项目」,选择JSON格式保存到本地。
  3. 在Project1中批量添加匹配列

    • 添加Column E:点击任意列下拉菜单→「添加列基于此列」,列名设为Column E,在表达式框输入:
      with(json.parse(file_contents("/实际路径/project2-export.json")).rows, row, row.cells.id.value == cells.id.value, row.cells["Column E"].value)[0].or("无匹配")
      
      替换/实际路径/project2-export.json为你保存的JSON文件路径,or("无匹配")可根据需求删除(无匹配时会显示空值)。
    • 重复上述步骤添加Column F,仅需将表达式中的"Column E"替换为"Column F":
      with(json.parse(file_contents("/实际路径/project2-export.json")).rows, row, row.cells.id.value == cells.id.value, row.cells["Column F"].value)[0].or("无匹配")
      

方法二:使用Python脚本(适合复杂批量场景)

如果需要自定义匹配逻辑或批量处理更多列,可通过Python结合pandas和OpenRefine客户端实现:

  1. 安装依赖
    终端运行以下命令:

    pip install pandas openrefine-client
    
  2. 编写执行脚本

    import pandas as pd
    from openrefine_client import OpenRefineClient
    
    # 读取Project2的TSV,仅保留需要的列
    project2_df = pd.read_csv("实际路径/project2.tsv", sep="\t", usecols=["id", "Column E", "Column F"])
    # 转换为id键控的字典,方便匹配
    project2_data = project2_df.set_index("id").to_dict(orient="index")
    
    # 连接OpenRefine服务(确保OpenRefine已启动,默认端口3333)
    client = OpenRefineClient(host="http://localhost:3333")
    # 获取Project1实例,替换为你的Project1 ID(可在项目URL末尾获取)
    project1 = client.get_project("your-project1-id")
    
    # 批量添加列
    # 添加Column E
    project1.add_column(
        new_column_name="Column E",
        expression='value = project2_data.get(cells["id"].value, {}).get("Column E", "无匹配")',
        base_column_name="id"
    )
    # 添加Column F
    project1.add_column(
        new_column_name="Column F",
        expression='value = project2_data.get(cells["id"].value, {}).get("Column F", "无匹配")',
        base_column_name="id"
    )
    
    # 保存更改
    project1.apply_operations()
    

    注意:替换脚本中的文件路径和Project1 ID,"无匹配"可根据需求删除。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:50:09