做数据报表最崩溃的瞬间是什么?不是写不出复杂的DAX公式,而是发现原始数据里"洛杉矶"被写成了LA、Los Angeles、los angeles三种形式。Power BI用户对此深有体会——再漂亮的可视化,底层数据一团糟也是白搭。

这篇指南用一套真实的业务数据集演示:16.3万条销售记录横跨2015到2020年,酒店预订CSV里充斥着空值和格式混乱,产品目录和多个查找表关系错综复杂。正是Power Query设计之初要解决的典型场景。

打开网易新闻 查看精彩图片

核心工作区:Power Query编辑器

所有数据转换都在加载到数据模型之前完成。入口有两个:导入数据源后选"转换数据",或在Power BI Desktop的Home选项卡进入。

界面四块区域各司其职。左侧查询面板列出全部12张表,包括销售主表、数据清洗专用表、日历表及各查找表。中间数据预览区显示采样数据,列类型(日期、文本、数值)一目了然,点击列头可直接操作。右侧"已应用步骤"记录每一步动作,支持编辑、重排、删除——这是Power Query的版本控制机制。底部公式栏显示每步背后的M语言代码,从View选项卡可切换显示。

数据质量诊断三板斧

正式清洗前,先用内置分析视图摸清底细。路径:View → Column Quality / Column Distribution / Column Profile。

列质量视图在每列顶部用百分比条展示三类数据占比:有效值(绿)、错误值(红)、空值/Null(灰)。在数据清洗表中,一眼就能看出guest_name和payment_status的空值率异常偏高。

列分布视图以直方图呈现数值频率, skewed分布、异常峰值、意外的高基数问题无所遁形。以listing_city列为例,LA/los angeles/Los Angeles的碎片化问题在此暴露无遗。

列配置文件最精细——选中单列后,统计面板呈现最小值、最大值、平均值、计数、去重计数、空值计数及频率图表。默认仅分析前1000行,点击底部状态栏可切换为全量数据集分析。

六大清洗场景实战

数据清洗表堪称现实问题的标本库:guest_name和payment_status空值、住宿天数为负数、布尔值格式混乱(True/False/Yes/No/n混用)、客人姓名带多余空格。逐条处理如下。

场景一:空值行删除

关键字段缺失导致整行失去业务意义时(如booking_id为空),直接移除整行。

场景二:空值填充默认值

可选字段不宜删行,用有意义的默认值替代。数值字段填0、均值或中位数;