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

DAX Generate Series实现:Power BI能耗分析数据表转换需求

能耗数据扩展方案(Power BI / Python)

Power BI 实现步骤(Power Query)

针对你需要将MPAN按Days Applicable次数重复、生成连续日期序列EAC_EFD、同步重复每日用量的需求,用Power Query可以直接完成:

  1. 将已计算好的数据集导入Power BI,进入Power Query编辑器
  2. 选中原数据表,点击「添加列」→「自定义列」,粘贴以下M代码(注意替换占位符):
= Table.FromRecords(
    List.Unfold(
        (state) => if state[Index] >= Table.RowCount(Source) then null else 
            let
                currentRow = Source{state[Index]},
                dateSeq = List.Dates(currentRow[起始日期], currentRow[Days Applicable], #duration(1,0,0,0)),
                records = List.Transform(dateSeq, (d) => [
                    MPAN = currentRow[MPAN],
                    EAC_EFD = d,
                    每日用量 = currentRow[0]
                ])
            in
                {records, [Index = state[Index] + 1]}
        , [Index = 0]
    )
)

替换提示:把Source换成你原表的实际步骤名,起始日期替换为数据中对应的起始日期列名,0替换为你的每日用量列名。

  1. 点击确定后,展开自定义列中的列表,即可得到目标扩展表。

Python 预处理方案

如果更习惯用Python做数据预处理,用pandas能快速生成目标表:

import pandas as pd

# 读取原始计算数据集
df = pd.read_csv("your_calculated_data.csv")

# 为每行生成对应长度的日期序列
df["EAC_EFD"] = df.apply(
    lambda row: pd.date_range(start=row["起始日期"], periods=row["Days Applicable"], freq="D"),
    axis=1
)

# 展开日期序列,同步保留MPAN和每日用量
expanded_df = df.explode("EAC_EFD", ignore_index=True)

# 重命名列(如果需要)
expanded_df = expanded_df.rename(columns={"0": "每日用量"})

# 保存结果,直接导入Power BI即可
expanded_df.to_csv("expanded_energy_data.csv", index=False)

替换提示:替换your_calculated_data.csv为你的数据集路径,起始日期为实际列名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:57:19