使用Power BI进行数据分析,洞察商业逻辑时,可以搭配Python这个强大的工具,在数据获取、数据清理、数据可视化的全流程中,变得更加灵活、强大。下面具体介绍下这几个方面,Power BI与Python是怎么样进行联合的。
一、数据获取
在“获取数据”功能中,选择“其他-Python脚本”
、
填写Python导入的脚本
import numpy as np
import pandas as pd
df = pd.DataFrame({
'Fname':['Harry','Sally','Paul','Abe','June','Mike','Tom'],
'Age':[21,34,42,18,24,80,22],
'Weight': [180, 130, 200, 140, 176, 142, 210],
'Gender':['M','F','M','M','F','M','M'],
'State':['Washington','Oregon','California','Washington','Nevada','Texas','Nevada'],
'Children':[4,1,2,3,0,np.nan,np.nan],
'Pets':[3,2,2,5,0,1,5]
})
print (df)
导入数据成功
二、数据清理
使用Python进一步进行数据处理,数据清洗可以更加强大。
打开PowerBI的查询编辑器
运行python脚本,对Children列的两个缺失值进行补全。
# 'dataset' 保留此脚本的输入数据
#import pandas as pd
completedData = dataset['Children'].fillna(0).astype(int)
dataset['Children'] = completedData
通过高级编辑器查看M语言,M语言通过Python.Execute函数执行python脚本。
三、数据可视化
构建年龄、体重关系的散点图:
选择Python视觉对象->加入Age、Weight字段到值中->编辑python代码
import matplotlib.pyplot as plt
dataset.plot(kind='scatter', x='Age', y='Weight', color='red')
plt.show()
类似操作,再创建个折现图
import matplotlib.pyplot as plt
ax = plt.gca()
dataset.plot(kind='line',x='Fname',y='Children',ax=ax)
dataset.plot(kind='line',x='Fname',y='Pets', color='red', ax=ax)
plt.show()
四、总结
(1)需要在Power BI中先配置好python的主目录,python环境安装好numpy、pandas、matplotlib模块。具体可参见文章:
Power BI中配置Python运行环境,及相关错误问题解决https://blog.csdn.net/scut_yfli/article/details/104877044
(2)Python BI与Python之间的数据传递以DataFrame格式进行。Python的处理结果以Dataframe形式输出,Power Query M语言会自动将Dataframe转换为Table格式。
(3)利用python脚本强大的工具库、修改脚本的灵活性,使得整儿Power BI处理更加强大。
(4)python视觉对象的一些限制:
- 数据大小限制。 Python 视觉对象用于绘制的数据仅限 150,000 行。 如果选择了 150,000 行以上,则只会使用前 150,000 行,且在图像上显示一条消息。 此外,输入数据的限制为 250 MB。
- 分辨率。 所有 Python 视觉对象均以 72 DPI 显示。
- 计算时间限制。 如果 Python 视觉对象计算时间超过 5 分钟,则执行将超时并生成一个错误。