Power BI与Python的集成应用

Power BI是微软推出的商业智能工具,自2018年起,它开始支持集成R和Python等统计和通用软件。这种集成消除了业务智能(BI)专业人员和数据科学团队之间的依赖关系,使得BI专业人员能够直接在集成环境中运行Python代码,而Python开发者也可以利用BI团队的成果,以仪表板的形式展示分析结果。

Power BI的重要性

在当前数据驱动的商业环境中,数据科学家需要理解解决复杂商业问题的完整流程,这通常包括数据收集、清洗、探索、转换,并最终预测未来事件。分析结果通常以仪表板或报告的形式呈现。因此,传统的BI专业人员和预测建模专家的角色正在变得模糊。

这种趋势增强了对一个综合性工具的需求,该工具能够执行分析流程中的所有任务。如果这个工具来自Excel的制造商,那就再好不过了。因此,Power BI成为了执行嵌入式分析的新宠。

Power BIPython的集成能力

本教程将帮助理解Power BI和Python的集成能力,并亲自动手执行一些单独系统难以轻松实现的任务。

要开始使用集成环境,需要在计算机上安装Python发行版。推荐使用Python的基础发行版,对于所有编码相关任务,使用Anaconda。不过,将Anaconda与Power BI集成可能会比较复杂。

安装完成后,集成环境需要安装四个Python包:Pandas(用于数据操作和分析)、Matplotlib和Seaborn(用于绘图)以及Numpy(用于科学计算)。可以使用pip命令在命令行工具中安装这些包。

pip install pandas pip install matplotlib pip install numpy pip install seaborn

安装这些包后,需要在Power BI中启用Python脚本功能。可以打开Power BI检查它是否自动检测到计算机上安装的Python发行版。

现在,可以运行一个快速测试来检查Python是否在Power BI堆栈中工作。首先,可以使用Python脚本在Power BI中导入一个小数据集。

为此,请转到“主页”选项卡,点击“获取数据”,然后选择“其他”。这个部分允许从多种来源导入数据,特别是Web、Hadoop分布式文件系统(HDFS)、Spark等,除了使用R或Python等脚本。在这里,将导入存储在计算机上的“客户流失预测”数据集。

点击“连接”。它将打开一个部分,可以在其中编写以下Python脚本:

# 此处省略具体的Python脚本代码

点击“确定”将加载导航器,并要求选择“流失”数据,然后点击“加载”。可以转到数据视图以检查数据是否已加载。现在,已准备好使用Power Query执行一键式数据转换。

那些已经攀登了Python学习曲线的人会认识到,转换数据或多或少是一个直接的活动,但对于刚开始他们的数据科学之旅的人来说,可能并不那么容易。

然而,有了Power Query编辑器,可以一键式地塑造和转换数据。不仅如此,Power BI还记录了所有进入数据转换管道的操作,然后再进行任何分析。为了展示简单的数据转换能力,将展示如何使用Power Query。

一旦在Power BI中加载了数据,请点击“主页”选项卡下的“转换数据”以打开查询编辑器。

这将打开查询编辑器,并为提供许多选项来执行数据的清理、重塑和转换。

将把“customer_nw_category”变量转换为文本字段,因为这些代表客户净价值类别,不应用于连续变量。

为此,将选择列,转到“数据类型”,并将数据类型更改为文本。Power Query将此步骤记录在“已应用步骤”部分。重命名此步骤是个好习惯,以便于回忆。将将其重命名为“nw_cat Text”。类似地,将“流失”列转换为逻辑变量,表示1(流失)为True,0(未流失)为False,并重命名步骤为“流失 – True/False”。

完成转换步骤后,点击左上角的“关闭并应用”以将这些转换应用于数据。

尽管Power BI拥有全面的可视化库,但在其中创建相关性矩阵并非易事。然而,相关性矩阵热图是数据分析报告的重要组成部分。

在本节中,将展示如何使用Python的correlation函数创建相关性矩阵热图。这个热图将在Power BI的报告部分显示。

转到Power BI的报告部分,点击可视化部分下的Python视觉符号“Py”。在左侧,会注意到一个空的Python视觉出现,底部弹出了一个Python脚本编辑器。换句话说,Power BI为提供了使用脚本创建可视化的选项。

会注意到当前“值”字段为空。

为了说明相关性热图,将所有连续变量放入“值”字段,即年龄、所有平均每月余额列、当前和上个月余额以及当前和上个月交易列、被抚养人数和陈旧性(关联时间)。这是重要的一步。否则,Power BI将无法识别这些变量是可视化的一部分。

当将变量放入“值”字段时,Python脚本会自动填充以下代码:

# 以下代码用于创建数据框并删除重复行,始终执行,并作为脚本的序言: # dataset = pandas.DataFrame(age, average_monthly_balance_prevQ, average_monthly_balance_prevQ2, current_balance, current_month_balance, current_month_credit, current_month_debit, dependents, previous_month_balance, previous_month_credit, previous_month_end_balance, previous_month_debit, vintage) # dataset = dataset.drop_duplicates() # 在此处粘贴或输入脚本代码: # 导入图表库matplotlib和seaborn import matplotlib.pyplot as plt import seaborn as sns # 在数据集上创建相关性矩阵 corr = dataset.corr() # 创建相关性矩阵的热图 sns.heatmap(corr, cmap="YlGnBu") # 显示图表 plt.show()

最后,使用“运行脚本”按钮运行此脚本后,它会产生一个相关性矩阵热图。

分析热图后,可以得出以下结论:

对于所有客户,年龄和被抚养人数与其他变量没有相关性;

过去两个季度的平均每月余额中等程度相关;

上个季度的平均每月余额与当前月和上个月的余额高度相关。

可以为流失的客户生成这个热图,并与未流失的客户进行比较。因此,使用蓝色框应用“流失=True或False”的过滤器,分别观察两组客户的热图。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485