我正在Power BI的Power Query编辑器中运行Python脚本来转换和处理数据。这些计算之后,我想将数据集和另一个表返回给Power Query编辑器。我是否正确,第二张表必须是Pandas Dataframe?
仅当将第二张表从numpy.ndarray转换为pandas.DataFrame时,Power BI才将其识别为表格输出(result after script)。这是预期的行为吗?除Pandas Dataframe以外的其他Python对象是否可以传递给Power BI?
答案 0 :(得分:1)
我是否纠正第二张表需要为Pandas Dataframe吗?
是
这是预期的行为吗?
是,但是为什么?
您可以使用Python构造很多变量类型,并且要求Power BI应该识别所有变量类型会很多。而且,似乎不是为了让Power BI识别 some 变量类型,而是为了简化起见,开发人员决定在DataFrames
处划界。就个人而言,我认为这是一个明智的决定。这样,如果出现任何问题,您将知道这不是数据类型问题。
一些详细信息:
转到Power Query Editor,并使用Enter Data > OK
插入一个空表。然后使用Transform > Run Python Script
在下面插入脚本:
# 'dataset' holds the input data for this script
import numpy as np
import pandas as pd
var1 = np.random.randint(5, size=(2, 4))
var2 = pd.DataFrame(np.random.randint(5, size=(2, 4)))
var3 = 3
var4 = pd.DataFrame([type(var3)])
var5 = pd.Series([type(var3)])
此代码段构造了以下类型的5个变量:
print(type(var1))
<class 'numpy.ndarray'>
print(type(var2))
<class 'pandas.core.frame.DataFrame'>
print(type(var3))
<class 'int'>
print(type(var4))
<class 'pandas.core.frame.DataFrame'>
print(type(var5))
<class 'pandas.core.series.Series'>
具体来说,我没有在PowerBI中运行print()
命令,而是在Spyder中运行。
现在,如果您单击OK
并执行The Power Query Editor
中的第一个代码段,将显示一个表格,显示在Applied Steps
下哪个变量对您可用:
dataset
是在插入Python代码段时通过defult构造的,而var2
和var4
是在代码中构造的。所有都是数据帧。即使是var5
的{{1}}也无法进行进一步的编辑。
我希望这会有所帮助。如果没有,那就不要犹豫,让我知道!
编辑:
关于:
这些计算之后,我想返回数据集和另一个 表到Power Query编辑器。
您可以加载任何表并使用Python对其进行编辑。如果您想保留该表的一个版本,并在另一个表上进行进一步的编辑,则应查看Edit python script used as Data entry in Power BI