如何从Power BI调用Python脚本(含VS Code中脚本)并在仪表板输出结果?
从Power BI调用Python脚本的解决方案
一、直接在Power BI中调用Python脚本
Power BI支持在数据处理阶段和可视化阶段调用Python脚本,操作步骤如下:
1. 配置Python环境
- 打开Power BI Desktop,依次点击「文件」→「选项和设置」→「选项」→「Python脚本」,在「Python主目录」中选择你的Python安装路径(例如
C:\Users\XXX\AppData\Local\Programs\Python\Python310),确认保存。 - 提前安装所需Python库(如
pandas、matplotlib),确保Power BI可正常调用。
2. 在Power Query中调用脚本(数据处理)
- 加载目标数据到Power Query编辑器。
- 切换到「转换」选项卡,点击「运行Python脚本」,在编辑器中输入处理代码:
import pandas as pd # dataset为Power Query传入的默认数据框 cleaned_data = dataset.dropna(subset=['销售额']) cleaned_data['环比增长'] = cleaned_data['销售额'].pct_change() - 点击「确定」,Power BI会运行脚本并返回处理后的数据集,可继续清洗或加载到模型。
3. 使用Python视觉对象(可视化)
- 确保数据已加载到Power BI模型,点击「可视化」面板中的「Python视觉对象」图标。
- 勾选需要用于可视化的字段,点击「确定」后在右侧编辑器输入可视化代码:
import seaborn as sns import matplotlib.pyplot as plt sns.lineplot(data=dataset, x='日期', y='销售额') plt.title('销售额趋势') plt.xticks(rotation=45) plt.show() - 点击「运行脚本」,生成的图表会直接展示在画布上。
二、调用VS Code中的Python脚本并展示结果到文本框
可以实现,需通过外部脚本调用+Power BI数据加载的方式完成:
1. 封装VS Code中的Python脚本
- 将需要运行的函数保存为独立
.py文件(如sales_calc.py),确保函数能返回目标结果:# sales_calc.py def get_sales_summary(data): avg_sales = data['销售额'].mean() max_sales = data['销售额'].max() return f"平均销售额:{avg_sales:.2f}元 | 最高销售额:{max_sales:.2f}元" - 将该文件放在Power BI可访问的路径下(如桌面)。
2. 在Power Query中调用外部脚本
- 加载需要传入函数的数据集到Power Query,点击「转换」→「运行Python脚本」。
- 输入脚本导入外部文件并调用函数,将结果转为数据框返回:
import pandas as pd import sys # 添加脚本所在目录到Python路径 sys.path.append(r'C:\Users\XXX\Desktop') from sales_calc import get_sales_summary # 调用函数生成结果文本 summary_text = get_sales_summary(dataset) # 转为数据框便于Power BI加载 result_df = pd.DataFrame({'销售汇总': [summary_text]}) - 运行脚本后,将结果加载到Power BI模型。
3. 展示结果到仪表板文本框
- 在Power BI画布中,点击「插入」→「文本框」。
- 在文本框编辑界面,从「字段」面板中拖拽刚才加载的「销售汇总」字段到文本框内。
- 调整文本框的字体、大小等样式,即可在仪表板中展示Python函数的输出结果。
内容的提问来源于stack exchange,提问作者Techie
相关产品推荐
相关产品推荐

