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

Azure ML Workbench数据流能否引用多数据源?笔记本逻辑如何集成?

解决Azure ML Workbench数据流中跨数据源列筛选的问题

我来帮你拆解这个问题,分两部分给出实用解决方案:

一、关于数据流表达式引用多数据源的说明

首先明确:Azure ML Workbench的数据准备默认可视化转换的表达式编辑器,没办法直接在单个转换步骤里引用其他独立数据源的内容——因为每个转换都是针对当前正在处理的数据集设计的。不过咱们可以通过间接方式实现跨数据源的逻辑,下面说具体操作方案。

二、把笔记本逻辑整合到数据流的具体步骤

你的需求是从df的列中,筛选出列名存在于df_op的Drug Name值中的列,这个逻辑可以通过两种方式落地:

方法1:参数+筛选列转换(推荐,可视化操作更直观)

  1. 先从df_op提取唯一药物名称
    打开df_op数据集,添加一个去重转换,只保留Drug Name列,得到仅含唯一药物名称的数据集。
    接着把这个去重后的名称列表导出为项目参数:在Workbench的参数面板里,新建一个字符串数组类型的参数(比如命名为valid_drug_columns),把去重后的Drug Name值批量填入。

  2. 在df数据流中用参数筛选列
    回到df数据集,添加一个筛选列转换,在表达式编辑器中输入:

    column.name in @valid_drug_columns
    

    这个表达式会自动筛选出列名在参数列表中的所有列,完美实现你笔记本里sum_op_columns的逻辑。

方法2:自定义Python脚本转换(灵活度更高)

如果你的逻辑后续有扩展需求,可以直接把笔记本代码迁移到数据流的Python脚本转换中:

  1. 在df的数据流里,添加一个运行Python脚本的转换。
  2. 在脚本中加载df_op数据集(确保它已在你的Workbench项目中),执行筛选逻辑:
    import pandas as pd
    
    # 加载df_op数据集,替换为你实际的文件路径
    df_op = pd.read_csv('../data/df_op.csv')
    valid_drugs = df_op['Drug Name'].unique()
    
    # 执行列筛选逻辑
    all_columns = df.columns
    sum_columns = [col for col in all_columns if col not in ['NPI', 'Gender', 'State', 'Credentials', 'Specialty']]
    sum_op_columns = list(set(sum_columns) & set(valid_drugs))
    df = df[sum_op_columns]
    
  3. 运行脚本后,输出的数据集就是你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:26:17