这与针对 R 脚本 here 描述的挑战相同。该设置也适用于 Python。但是,我发现这种方法有一个缺点:它将新连接或计算的表存储为先前表之一的编辑版本。以下建议将演示如何在不更改输入表的情况下生成全新的计算表(除了将日期列的数据类型从Date 更改为Text,因为this。)
简答:
在Power Query editor,按照以下步骤操作:
将两列中Date columns的数据类型改为Text。
单击Enter Data。 仅点击OK。
激活新的Table3 并使用Transform > Run Python Script。 仅点击OK。
激活编辑栏并将其中的内容替换为= Python.Execute("# Python:",[df1=Table1, df2=Table2])。点击Enter。
如果系统提示您这样做,请在下一步中单击 Edit Permission 和 Run。
在Applied Steps 下,在名为Run Python Script 的新步骤中,单击齿轮图标以打开Run Python Script 编辑器。
在下方插入sn-p,然后点击OK。
代码:
import pandas as pd
df3 = pd.merge(df1, df2, how = 'left', on = ['Date'])
df3['Value3'] = df1['Value1']*df2['Value2']
在df3旁边,点击Table,就是这样:
详情:
必须非常仔细地遵循上面的列表才能使事情正常进行。所以这里是所有肮脏的小细节:
1.使用Get Data将表格作为CSV文件加载到Power BI Desktop中。
2.点击Edit Queries。
3.在Table1中,点击Date column旁边的符号,选择Text并点击Replace Current
4.对Table2做同样的事情
5.在Home 标签上,点击Enter Data
6.在出现的框中,除了点击OK之外别无他法。
7.这将在Queries下插入一个名为Table3的空表,这正是我们想要的:
8. 转到Transform 标签并点击Run Python Script:
9. 这将打开Run Python Script 编辑器。您可以从这里开始编写脚本,但这会使接下来的步骤变得不必要地复杂。所以什么都不做,点击OK:
10. 在公式栏中,您将看到公式= Python.Execute("# 'dataset' holds the input data for this script#(lf)",[dataset=#"Changed Type"])。请注意,您在已应用的步骤下有一个名为 Run Python Script 的新步骤:
11.上面的截图中有几个有趣的细节,但首先我们要分解函数= Python.Execute("# 'dataset' holds the input data for this script#(lf)",[dataset=#"Changed Type"])的参数。
"# 'dataset'" holds the input data for this script#(lf)" 部分只是插入您可以在Python Script Editor 中看到的注释。所以这并不重要,但你也不能把它留空。我喜欢使用更短的东西,比如"# Python:"。
[dataset=#"Changed Type"] 部分是指向处于Changed Type 下状态的空Table3 的指针。因此,如果您在插入 Python 脚本之前所做的最后一件事不是更改数据类型,那么这部分看起来会有所不同。然后使用dataset 作为pandas 数据框在您的python 脚本中提供该表。考虑到这一点,我们可以对公式进行一些非常有用的更改:
12. 将公式栏更改为= Python.Execute("# Python:",[df1=Table1, df2=Table2]),然后点击Enter。这将使Table1 和Table2 分别作为两个名为df1 和df2 的pandas 数据框可用于您的Python 脚本。
13.点击Applied Steps下Run Python script旁边的齿轮(还是一朵花?)图标:
14. 插入以下 sn-p:
代码:
import pandas as pd
df3 = pd.merge(df1, df2, how = 'left', on = ['Date'])
df3['Value3'] = df1['Value1']*df2['Value2']
这将在Date column 上连接df1 和df2,并插入一个名为Value3 的新计算列。不太花哨,但通过此设置,您可以在 Power BI 世界中使用您的数据和 Python 的强大功能做任何您想做的事情。
15.点击OK,你会看到这个:
您会看到df3 列在蓝色方块中的输入数据框df1 和df2 下。如果您已在 Python 脚本中指定任何其他数据框作为计算步骤,它们也会在此处列出。要将其变成 Power BI 的可访问表,只需单击绿色箭头所示的Table。
16. 就是这样:
请注意,Date column 的数据类型默认设置为 Date,但您可以如前所述将其更改为 Text。
单击Home > Close&Apply 退出Power Query Editor 并返回到Power BI Desktop 中所有开始的位置。