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

如何在Azure Data Factory中按动态条件计算平均值生成新列?

实现动态条件的场均得分计算(对应Google Sheets AVERAGEIFS)

一、Azure Data Flows 窗口转换的正确实现

你之前用窗口转换的思路是对的,只是没搞懂动态引用当前行的语法。按以下步骤操作就能实现需求:

  • 添加窗口转换,在「分组依据」里选中season和team_name(这两个字段用来匹配当前行的赛季和球队)
  • 在「排序依据」里选week,设置为升序
  • 在「窗口列」新增一列(比如命名为avg_points_before),输入以下表达式:
    avg(over(
        partitionBy(season, team_name),
        orderBy(week asc),
        rangeBetween(unboundedPreceding(), currentRow() - 1)
    ), points)
    
    这个表达式会自动按当前行的赛季、球队分组,只计算当前周之前所有比赛的得分平均值,完全对应你Google Sheets里的公式逻辑。

二、Power Query(M语言)实现方案

如果想用Power Query,不用纠结复杂的M语法,按以下步骤操作:

  1. 把NFL数据导入Power Query,确保season、team_name、week、points的字段类型正确
  2. 按season和team_name分组,操作选择「所有行」,得到包含分组表的新列
  3. 对分组后的「所有行」列添加自定义列,粘贴以下M代码:
    Table.AddColumn([所有行], "avg_points_before", (row) =>
        let
            filtered = Table.SelectRows([所有行], each [week] < row[week]),
            avgScore = if Table.RowCount(filtered) > 0 then List.Average(filtered[points]) else null
        in
            avgScore
    )
    
  4. 展开自定义列,就能得到每行对应的场均得分

三、新手友好的替代平台建议

如果觉得Azure的工具上手麻烦,推荐两个低成本、易操作的选项:

  • BigQuery:用SQL就能搞定,语法简单直观,免费额度足够处理10年NFL数据。SQL示例:
    SELECT
        *,
        AVG(points) OVER (
            PARTITION BY season, team_name
            ORDER BY week
            ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING
        ) AS avg_points_before
    FROM nfl_game_stats
    
    写完SQL直接保存成视图,后续可以直接对接ML模型。
  • Pandas+云函数:如果会点Python,用Pandas处理更灵活,配合AWS Lambda或Google Cloud Functions定时运行,成本极低。代码示例:
    import pandas as pd
    
    df = pd.read_csv("nfl_data.csv")
    # 按赛季、球队分组,按周排序
    df = df.sort_values(["season", "team_name", "week"])
    # 计算当前行之前的场均得分
    df["avg_points_before"] = df.groupby(["season", "team_name"])["points"].transform(
        lambda x: x.expanding().mean().shift(1)
    )
    
    处理完直接导出到ML平台(比如Google AI Platform或AWS SageMaker)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:20:16