数据清洗与筛选

使用 Microsoft Fabric 进行数据转换与分析

Luis Silva

Solution Architect - Data & AI

数据清洗工具

 

 

三个工具的图标:SQL、Spark 和 Dataflows

使用 Microsoft Fabric 进行数据转换与分析

处理空白行

  • 当整行为空时删除该行

 

示意图:包含多行空白的表,转换为已删除空行的表

使用 Microsoft Fabric 进行数据转换与分析

用 Dataflows 处理空白行

  • "删除空白行"转换

 

Dataflow 中"删除行"菜单的截图,突出显示删除空白行选项,并展示删除前后的表示例

使用 Microsoft Fabric 进行数据转换与分析

用 Spark 处理空白行

  • DataFrame dropna( ) 函数
  • 可删除含任意空值的行,或全为空值的行

使用 dropna 两种方式前后对比的表示例

使用 Microsoft Fabric 进行数据转换与分析

处理重复行

  • 删除重复行

 

示意图:包含重复行的表,转换为去除一条重复记录的表

使用 Microsoft Fabric 进行数据转换与分析

用 Dataflows 处理重复行

  • "删除重复项"转换

 

Dataflow 中"删除行"菜单的截图,突出显示删除重复项选项,并展示删除前后的表示例

使用 Microsoft Fabric 进行数据转换与分析

用 Spark 处理重复行

  • DataFrame dropDuplicates( ) 函数

 

示意图:一张包含重复行的表,调用 dataframe dropDuplicates 后去除其中一条重复记录

使用 Microsoft Fabric 进行数据转换与分析

替换值

  • 将列中某个值替换为另一个值。
  • 也可将空单元格替换为指定值。

 

示意图:表中若干记录的 ABC 值被替换为 XYA。

使用 Microsoft Fabric 进行数据转换与分析

用 Dataflows 替换值

  • "替换值"转换

 

Dataflow 中"替换值"转换菜单的截图,并展示将空值替换为字符串"(Unknown)"的前后对比

使用 Microsoft Fabric 进行数据转换与分析

用 Spark 替换值

  • DataFrame replace( )_ 函数

 

示意图:调用 PySpark 的 replace 后,将若干记录的 N/A 值替换为字符串"Unknown"

使用 Microsoft Fabric 进行数据转换与分析

更正数据类型

  • 跨模型保持数据类型一致
  • 支持值间比较

示意图:将以文本存储的数字列转换为真正的数字类型

使用 Microsoft Fabric 进行数据转换与分析

更正数据类型

  • 跨模型保持数据类型一致。
  • 支持值间比较。
  • 支持特定类型的操作。
    • 数值列可做算术运算。
    • 日期/时间列可做日期/时间运算。

示例:文本列的转换(小写、大写、修剪)与数值列的转换(求和、最大值)

使用 Microsoft Fabric 进行数据转换与分析

在 Dataflows 中更正数据类型

  • 上下文菜单(方式 1):
    1. 在数据视图中选择一列。
    2. 点击列标题左侧的图标。

截图突出显示列标题左侧的图标,可打开"更改类型"的上下文菜单

使用 Microsoft Fabric 进行数据转换与分析

在 Dataflows 中更正数据类型

  • 上下文菜单(方式 1):
    1. 在数据视图中选择一列。
    2. 点击列标题左侧的图标。
    3. 从列表中选择新的数据类型。

截图:在数据视图中点击列标题的数据类型后可用的"更改类型"上下文菜单

使用 Microsoft Fabric 进行数据转换与分析

在 Dataflows 中更正数据类型

  • 上下文菜单(方式 2):
    1. 在数据视图中选择一列。
    2. 右键单击列标题。

截图突出显示需要更改数据类型的列标题

使用 Microsoft Fabric 进行数据转换与分析

在 Dataflows 中更正数据类型

  • 添加转换:
    1. 在数据视图中选择一列。
    2. 在图形视图中单击 (+) 添加转换。
    3. 在弹出菜单中选择"更改类型",再从列表中选择新类型。

截图:在查询中添加"更改类型"转换

使用 Microsoft Fabric 进行数据转换与分析

用 Spark 更正数据类型

  • DataFrame cast( )_ 函数
df.withColumn("new_column_name", df["column_name"].cast("new_data_type"))
  • 示例:
# 将 [orderID] 列转换为整数
df = df.withColumn("orderID", df["orderID"].cast("integer"))
使用 Microsoft Fabric 进行数据转换与分析

数据筛选

  • 按条件包含或排除行。
SELECT
  OrderID, State, Date, Amount
FROM
  Orders 
WHERE
  State = 'NY'

示意图:过滤表,仅保留州为 NY 的行

使用 Microsoft Fabric 进行数据转换与分析

在 Dataflows 中筛选数据

  • 使用"筛选器"转换

对列应用筛选转换的截图

使用 Microsoft Fabric 进行数据转换与分析

在 Spark 中筛选数据

  • DataFrame filter( ) 函数
  • where( )filter( ) 的别名
df.filter( <condition> )
  • 示例:
# 仅返回 State = 'NY' 的行
df.filter( df.state == 'NY' )
使用 Microsoft Fabric 进行数据转换与分析

Passons à la pratique !

使用 Microsoft Fabric 进行数据转换与分析

Preparing Video For Download...