时间序列数据转换基础

Power BI 中的时间序列分析

Kevin Barlow

Data Analytics Professional

背景与重要性

  • 时间序列数据在各行业日益普及。
  • 不同系统有不同的要求与格式。

 

数据架构示意

Power BI 中的时间序列分析

ISO:国际标准

ISO 8601

  • 管理日期和时间数据的国际标准
  • 允许将日期和时间转换为不同格式
  • 支持本地化与个性化
  • FORMAT() 操作日期字段

示例日期:

var date = January 1st 2022 
# US Standard (MM DD YYYY)

var date2 = FORMAT(date, "DD MM YYYY")
# UK Standard
# 1 January 2022

var date3 = FORMAT(date, "YYYY MM DD")
# ISO Standard
# 2022 January 01
1 https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations
Power BI 中的时间序列分析

UNIX:高精度时间戳

UNIX 时间

  • 也称 Epoch 时间
  • 表示自 Epoch(1970 年 1 月 1 日 00:00:00 UTC)以来的秒数
  • 多用于计算机系统
  • 表示时间戳(日期+时间)

示例日期与时间

2022 年 1 月 1 日 06:00:00 UTC

1641016800

2022 年 1 月 1 日 18:00:00 UTC

1641060000

1 https://en.wikipedia.org/wiki/Unix_time
Power BI 中的时间序列分析

在 Power BI 中操作日期

DATEADD()

从参考日期移动指定数量的时间间隔。

DATEADD(<dates>,<number_of_intervals>,<interval>)

示例:

DATEADD('date', 30, DAY)

var timestamp_PST = 
    DATEADD('timestamp_EST', -3, HOUR)

DATEDIFF()

计算两个日期对象之间的时间间隔数量。

DATEDIFF(<Date1>, <Date2>, <Interval>)

示例:

DATEDIFF(DATE(2019,2,1),
        DATE(2020,4,30),
        MONTH)

Result: 14
Power BI 中的时间序列分析

用 DAX 汇总数据

时间序列不一定是规则间隔,取决于数据采集方式。这会带来问题:

  • 时间算法和公式假设间隔一致
  • 数据点之间可能发生显著变化

SUMMARIZE() 对表进行"平滑"。通过聚合,即使数据缺失或不规则,仍可获得趋势信息。

示例:

SUMMARIZE('<table>', 
    [group_column(s)], 
    [new aggregated column(s)])

SUMMARIZE('sales', 
    sales[Quarter], 
    sales[Region], 
    "Total Sales", SUM(sales[revenue]))
Power BI 中的时间序列分析

处理缺失数据

插补(Imputation) —— 当我们对缺失值应为何值有充分背景时很有用;常在 Power Query 中完成。

插补示例

删除数据 —— 当某行或列有大量缺失时可用;除非对分析有明显好处,应尽量避免。

删除数据示例

Power BI 中的时间序列分析

Superstore 数据集

在接下来的练习中,您将使用 Superstore 数据集。该数据集为美国各地 Superstore 的销售点(PoS)数据。您将把日期格式化为适合后续分析的正确格式。

Superstore 数据

Power BI 中的时间序列分析

Vamos praticar!

Power BI 中的时间序列分析

Preparing Video For Download...