Power Query和可视化图表(Power BI)

Power Query和可视化图表(Power BI)

Yiuhang Chan

Power Query的认识操作

如何进入Power Query

Excel 中,进入 Power Query 的方式是选择 “数据” 选项卡下的 “从数据源获取” 或 “查询编辑器”。在 Power BI 中,进入 Power Query 的方式是通过点击 “首页” 选项卡下的 “转换数据”。

添加自定义列

在 Power Query 中,可以通过 “添加列” 选项卡下的 “自定义列” 功能来创建新列。在这里,可以使用 M 语言编写公式,基于现有数据创建新的数据列。

添加条件列

条件列允许基于现有列中的值来创建新列。例如,根据销售量对数据进行分类。这可以通过 “添加列” 选项卡下的 “条件列” 完成。

索引列,重复列,拆分,提取

  • 索引列:可以添加一个序号列,对每行数据进行编号。
  • 重复列:允许创建现有列的副本。
  • 拆分:可以根据某些条件(如分隔符)将文本列拆分成多个列。
  • 提取:允许从文本列中提取特定的字符。

标题,删除,替换,筛选

  • 标题:调整列标题,使其更具描述性。
  • 删除:删除不需要的列或行。

  • 替换:在列中替换文本或数值。

  • 筛选:根据条件筛选数据。

合并查询原理

  • 合并查询:两个或多个查询的数据组合在一起。合并可以通过不同的方式完成,如下所示:
    • 左外合并:包括左表的所有行和右表中匹配的行。
    • 右外合并:包括右表的所有行和左表中匹配的行。
    • 外部合并:包括两个表中的所有行。
    • 内部合并:只包括两个表中匹配的行。
    • 左反合并:只包括左表中独有的行。
    • 右反合并:只包括右表中独有的行。

举例:

导入多表Excel

左外合并

  • 透视与透视列

    • 透视:将多行数据转换为列,通常用于整理和分析数据。
    • 透视列:将列数据转换为行格式,与透视相反。
  • 分组依据

    • 在 Power Query 中,可以根据一个或多个列的值对数据进行分组。这对于汇总信息非常有用。

可视化图表

常用图表

堆积图条形图与柱状图

应用场景:最适宜比较不同类别的大小。

工作中为了反映数据细分和总体情况,我们常常会使用到堆积条形图,这种图形让我们既能看到整体推移情况,又能看到某个分组单元的总体情况,还能看到组内组成部分的细分情况,一举多得

组成要素

  1. 组数:把数据分成几组,指导性的经验是将数据分成5到10组。
  2. 组宽度:通常来说,每组的宽度是一致的。组数和组宽度的选择就不是独立决定的,一个经验标准是:近似组宽度=(最大值-最小值)/组数,然后根据四舍五入确定初步的近似组宽度,之后根据数据的状况进行调整。
  3. 组限:分为组下限(进入该组的最小可能数据)和组上限(进入该组的最大可能数据),并且一个数据只能在一个组限内。绘画条形图时,不同组之间是有空隙的;而绘画直方图时,不同组之间是没有空隙的

注意:1. 确定谁是图例,2. 数据颜色和数据标,3. 标题,背景,4. 边框和阴影,5. x轴与y轴的起始刻度

折线图

应用场景:最适用于时间序列的数据。

概念:什么是折线图呢?折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。当有多个系列时,尤其适合使用折线图。如果有几个均匀分布的数值标签(尤其是年),也应该使用折线图。在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。

注意:1. 确定谁是图例,2. 数据颜色和数据标签,3. 形状,4. 标题,背景,5. 边框和阴影,6. x轴与y轴的起始刻度

分区图与堆积面积图

概念:什么是分区图呢?分区图又称面积图,它着重强调数量随时间而变化的程度,也可用于引起人们对总值趋势的注意并清晰展现数据的增减趋势、增减的速度、增减的规律、峰值等特征等。此外,堆积面积图还可以显示部分与整体的关系。面积图包含图表区、标题、绘图区、图例、坐标轴、坐标轴标题、网格线、数据标签、数据系列(区域)等元素,广泛运用于各行各业,比如销售金额增幅,客流量统计等。

堆积面积图:层叠面积图上最大的面积代表了所有数据量的总和,是一个整体

瀑布图

应用场景:一般用于计算公司销售毛利情况,出现有正数和负数的情况。

概念:瀑布图是数据可视化分析中常见的一种图形,采用绝对值与相对值结合的方式,适用于表达数个特定数值之间的数量变化关系。对于一系列具有累计性质的正值/负值具有很好的展示功能,既可以辅助理解数据的大小,又能直观地展示出数据的增减变化,反映数据在不同时期或受不同因素的影响结果

注意:情绪颜色和细目

建议配合切片器使用,便于查看细分的日期

散点图

概念:散点图始终有两个数值轴可以显示:一组沿水平轴的数值数据,另一组沿垂直轴的数值数据。 图表在 x 和 y 数值的交叉处显示点,将这些值单独合并到各个数据点。 Power BI 可以跨水平轴均匀或不均匀地分布这些数据 点。 具体视散点图表示的数据而定。

饼图与环形图

应用场景:最适合用来展示一个数据系列中各项值的大小与总和的比例

概念:用圆形及圆内扇形的角度来表示数值大小的图形。

建议配合切片器使用,便于查看各个店铺的详细情况

树状图

应用创景:适用于展示数据之间的层级和占比关系。(钻取和上卷)

概念:树状图将分层数据显示为一组嵌套矩形。 层次结构中的每个级别都由一个有色矩形(分支)表示,其中包含更小的矩形(叶)。 Power BI 根据度量值来确定每个矩形内的空间大小。 矩形按大小从左上方(最大)到右下方(最小)排列。

漏斗图

应用场景:一般作用与进度推进场景

概念:直观的展示业务流程,可以快速发现流程中存在的问题,在电商,营销,客户关系管理等领域广泛应用

信息

漏斗分析法

漏斗分析法是一种常用于数字营销和用户体验分析的方法。它通过将用户的整个转化过程视为一个漏斗,帮助定位在用户从潜在客户转化为最终客户的过程中的问题节点。这种方法特别适用于网站、应用程序和电子商务平台。

漏斗法的关键概念

  • 向前找流量:这意味着要关注吸引用户的渠道和方法,理解何种营销策略、内容或广告在吸引潜在客户方面最为有效。
  • 向后看转化:这涉及到分析用户在漏斗的每个阶段的转化情况,比如从意识到兴趣,再到决策和行动,以便理解在哪个阶段用户最有可能流失。
  • 自身看画像:这是指理解你的目标用户群体的特征,包括他们的行为、偏好和需求。

漏斗分析法的应用

  1. 定位问题节点:通过分析用户在漏斗的各个阶段的留存和流失,可以识别出用户体验中的问题点。例如,如果在结账过程中有大量用户流失,这可能表明结账过程存在问题。
  2. 用户转化分析:漏斗分析帮助你理解用户从了解产品到最终购买的整个过程,哪些环节最有效,哪些环节需要改进。
  3. 用户流失分析:通过分析在转化过程中流失的用户,可以了解导致用户流失的原因,并采取措施减少流失。
  4. 关键交易路径分析:在电子商务等场景中,了解用户从浏览商品到完成购买的路径,并分析在这个过程中的每个环节的表现。
  5. 数据对比分析:通过比较不同时间段或不同用户群体的漏斗数据,可以发现问题和机会点。
  6. 针对性改进策略:基于漏斗分析的结果,可以采取具体的优化措施,比如改进网站设计、优化结账流程、调整营销策略等。

按照已知的转化路径,借助漏斗模型分析总体和每一步的转化情况。例如将漏斗图用于网站关键路径的转化率分析,不仅能显示用户的最终转化率,同时还可以展示每一节点的转化率。

仪表盘

应用场景:适用于销售指标完成情况。

建议配合切片器使用,便于查看各个店铺的详细情况

卡片图

应用场景:适用于总销售额汇总展示

建议配合切片器使用

高级图表

KPI

高级的卡片图

分解数

概念:可以理解为一个小型的数据分析模型,逐级进行分析展示

信息

逻辑拆解法

逻辑拆解法是一种解决问题的强大工具,它通过将复杂问题分解成若干个更小、更易管理的子问题来工作。这种方法源于费米问题,这类问题以物理学家恩里科·费米命名,他以通过估算来解决复杂问题而闻名。通过将大问题分解成一系列小问题,我们可以更容易地估计或解决这些小问题,从而逐步构建出大问题的答案。

费米问题是指通过估算来近似解决复杂问题的一种方法。这种问题通常是开放式的,并且不可能直接得到精确答案。费米问题的解决通常需要借助于逻辑推理、已知数据、经验法则和合理假设。费米问题的解决过程涉及到对问题的分解,评估各部分的概率或数量,然后将这些部分合成以得出整体问题的大致答案。

费米问题的解决原则:

  1. 提出问题: 定义一个清晰且具体的问题。
  2. 分解问题: 将问题分解为更小、更具体的子问题。
  3. 估算参数: 对每个子问题进行数量估算,如果可能的话,使用已知的数据或常识。
  4. 合理假设: 在缺少确切信息的情况下,做出合理的假设来填补空白。
  5. 计算答案: 组合所有子问题的估算值来得出整个问题的近似答案。
  6. 复核与调整: 检查结果的合理性,并在必要时调整假设和估算。

逻辑树的构建

逻辑树(也称为问题树、分解树等)是逻辑拆解法的核心工具。它以树状结构展示问题的分解过程,每个节点代表问题的一个子部分。逻辑树从一个单一的、定义明确的问题开始,这个问题位于树的根部。然后,这个问题被分解成若干个子问题,这些子问题构成树的第一层分支。每个子问题又可以进一步分解成更小的问题,形成下一层分支,依此类推,直至所有的问题都被分解成足够简单,可以直接解决的问题。

逻辑树的原则

逻辑树是一种帮助系统化分解问题的工具。以下是构建逻辑树的原则:

  1. 层次结构: 逻辑树应该有明确的层次结构,从根问题开始,逐步向下分解。
  2. 互斥性: 每一层的子问题应该是互斥的,即它们不应该重叠,每个子问题应该覆盖根问题的不同部分。
  3. 完整性: 所有子问题的集合应该能够完整地覆盖上一层问题的内容。
  4. 逻辑性: 每次分解都应基于逻辑关系,如因果关系、分类、过程步骤等。
  5. 可操作性: 分解的最终子问题应足够具体,以便可以采取行动或进行量化分析。

逻辑拆解法的步骤

  1. 定义问题: 首先明确你要解决的问题。这个问题应该尽可能具体和清晰。
  2. 构建逻辑树: 从问题出发,思考哪些主要因素或子问题构成了这个问题。这一步是创建逻辑树的开始,每个因素或子问题都是树的一个分支。
  3. 进一步分解子问题: 对每个子问题继续进行分解,直到这些问题足够简单,可以直接解答或通过已知信息解决。
  4. 分析和解决子问题: 对每个最终的子问题进行分析和解决。这可能涉及到数学计算、逻辑推理、数据分析或其他专业知识。
  5. 整合结果: 最后,将所有子问题的解决方案整合起来,形成对原始问题的完整答案。

地图

地图默认是不勾选的—点击文件–选项和设置–选项–勾选上地图和着色地图视觉对象

关键影响着

概念:类似于一个小型的AI,可以进行简单的自动分析。

功能区图表

应用场景:根据不同时间段显示排名

概念: 可创建功能区图表来直观显示数据,并快速发现哪个数据类别具有最高排名(最大值)。 功能区图表能够高效地显示排名变化,并且会在每个时间段内始终将最高排名(值)显示在最顶部。

案例

制作出中国主要交通城市健康排行榜

数据获取

单页数据获取

数据获取拓展 获取贝壳网数据 https://sz.zu.ke.com/zufang

这样就完成了单页数据的获取

批量获取多页数据

定义数字变量P `(p as number) as table =>``

``Number.ToText(p)`: 将定义的变量P转为文本与前面的url地址进行拼接,最终生成我们要采集数据的URL

输入框里输入1点击调用,就是采集第一页的数据,输入2就是采集第二页的数据以此类推

新建源,生成一个空查询

输入框里输入={1..10} 这样我们在调用这个查询的时候就会采集1-10页的数据

点击上面的转换,转换到表

这样我们就建立好了一个查询,待会p的参数就会从我们创建好的Column1这个函数里去调用

添加列–调用自定义函数–功能查询/选择贝壳P/选择我们刚刚生成的Column1

如此一来 我们就实现了1-10页的批量爬取,当然如果要爬取更多页的数据调整1-10的参数即可。

注意

Powerbi 不是专业的爬取工具,但遇到反扒机制比较强的网站,或网页结构比较复杂的,那Power bi就不适用。我们就需要使用更专业的爬取工具去采集数据,如Python,八爪鱼,火车头等采集工具。在采集数据之前最好想采集一页测试一下,如果可以在进行批量采集。如果采集不到,就只能换其他采集工具去采集数据。

导入高德地图数据

导入数据源:中国主要城市交通数据

数据清洗

修正表格标题和进行值的拆分

数据建模

度量值与计算列

给交通健康排名表里每个城市打上健康或亚健康标签

度量值

健康城市数量 =CALCULATE(MAX('城市类型统计'[城市数量]),'城市类型统计'[健康状态]="健康"),在城市类型统计表里面健康类型这个字段等于健康的,统计满足条件的城市数量最大值。

  1. CALCULATE 函数:这是一个强大的函数,通常用于更改数据上下文并执行基于条件的计算。它可以应用过滤器来修改或创建新的数据上下文,并在这个上下文中计算表达式。
  2. MAX('城市类型统计'[城市数量]):这个表达式是CALCULATE函数中的第一个参数,用于找出“城市类型统计”表中“城市数量”列的最大值。
  3. '城市类型统计'[健康状态]="健康":这是CALCULATE函数中的第二个参数,表示一个过滤器。它的作用是从“城市类型统计”表中筛选出那些“健康状态”列值为“健康”的记录。

结合这些组件,整个公式的逻辑是:

  • 首先筛选出“健康状态”为“健康”的城市。
  • 然后在这个已经过滤的数据集中找出“城市数量”列的最大值。

所以,这个公式计算的是在所有被标记为“健康”的城市中,数量最多的城市有多少个。换句话说,这是在寻找在健康状态下具有最多城市数的记录。

新建列

健康类型 = IF('交通健康排名'[排名]<='城市类型统计'[健康城市数量],"健康","亚健康") 判断健康排名小于等于健康城市数量,健康城市引用我们刚刚建设的度量值,满足就是健康,否则就是亚健康。

  1. IF 函数:这是一个条件函数,通常用于根据给定的条件判断返回不同的结果。它有三个参数:一个逻辑测试(条件),如果条件为真时的结果,以及如果条件为假时的结果。
  2. '交通健康排名'[排名]:这是在某个表中引用的“排名”列,这里假设它是一个数值列,表示城市在交通健康方面的排名。
  3. '城市类型统计'[健康城市数量]:这是在另一个表中引用的“健康城市数量”列,假设这个列保存了某种计算或确定的健康城市的数量。
  4. <=:这是一个比较运算符,表示“小于或等于”。

整个公式的逻辑是:

  • 检查一个城市在“交通健康排名”中的排名是否小于或等于“城市类型统计”中定义的“健康城市数量”。
  • 如果条件为真(即,如果城市的排名在健康城市数量范围内),则该城市被分类为“健康”。
  • 如果条件为假(即,如果城市的排名超出了健康城市数量范围),则该城市被分类为“亚健康”。

结果是一个新的列或标签,表示每个城市基于其交通健康排名的健康状态。

构建数据关联关系

健康类型2 = IF('交通健康排名'[排名]<=56,"健康","亚健康")(硬编码56)

  1. IF函数: 这是一个基本的逻辑函数,它根据一个条件测试返回两个可能的结果之一。IF函数的结构是 IF(条件, 真时返回值, 假时返回值)
  2. 条件测试: '交通健康排名'[排名]<=56。这里检查的是某个城市的排名是否小于或等于56。
  3. 真时返回值: 如果上述条件成立(即排名是56或更好),则函数返回字符串”健康”。
  4. 假时返回值: 如果条件不成立(即排名超过56),则函数返回字符串”亚健康”。

这意味着,根据这个公式,所有排名在56或56之内的城市被认为是“健康”的,而所有排名超过56的城市则被认为是“亚健康”的。

可视化大屏制作

城市健康状态占比:环形图

交通健康/亚健康城市top3:卡片图

六宫格指标项表

地图

交通健康排名表

健康/亚健康卡片图

时间

中国交通主要城市健康榜标题

  • 标题: Power Query和可视化图表(Power BI)
  • 作者: Yiuhang Chan
  • 创建于 : 2020-09-21 18:36:45
  • 更新于 : 2024-02-28 18:50:08
  • 链接: https://www.yiuhangblog.com/2020/09/21/20200921可视化图表(Power BI)/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论