C'est le même défi qui a été décrit pour les scripts de R. aquí . Cette configuration devrait également fonctionner pour Python. Cependant, j'ai constaté que cette approche présente un inconvénient : Elle stocke la nouvelle table jointe ou calculée comme une version éditée d'une des tables précédentes. La suggestion suivante démontre comment vous pouvez produire un tableau calculé complètement nouveau sans modifier les tableaux d'entrée (sauf pour changer le type de données des colonnes Date de Date
a Text
à cause de este .)
Réponse courte :
Dans le Power Query editor
Suivez les étapes suivantes :
-
Modifiez le type de données de la Date columns
dans les deux colonnes pour Text
.
-
Cliquez sur Enter Data
. Seulement cliquez sur OK
.
-
Activez le nouveau Table3
et utiliser Transform > Run Python Script
. Seulement cliquez sur OK
.
-
Activez la barre de formule et remplacez ce qui s'y trouve par = Python.Execute("# Python:",[df1=Table1, df2=Table2])
. Cliquez sur Enter
.
-
Si l'on vous demande de le faire, cliquez sur Edit Permission
y Run
à l'étape suivante.
-
Sous Applied Steps
dans la nouvelle étape nommée Run Python Script
cliquez sur l'icône de l'engrenage pour ouvrir la fenêtre Run Python Script
éditeur.
-
Insérez l'extrait ci-dessous et cliquez sur OK
.
Code :
import pandas as pd
df3 = pd.merge(df1, df2, how = 'left', on = ['Date'])
df3['Value3'] = df1['Value1']*df2['Value2']
Suivant df3
, cliquez Table
et c'est tout :
Les détails :
La liste ci-dessus devra être suivie très attentivement pour que les choses fonctionnent. Voici donc tous les petits détails :
1. Charger les tableaux en tant que fichiers CSV dans Power BI Desktop en utilisant Get Data
.
2. Cliquez sur Edit Queries
.
3. Sur Table1
Cliquez sur le symbole à côté de l'icône Date column
, sélectionnez Text
et cliquez sur Replace Current
4. Faites de même pour Table2
5. Sur le Home
cliquez sur Enter Data
6. Dans la boîte qui apparaît, ne faites rien d'autre que de cliquer sur OK
.
7. Cela va insérer une table vide nommée Table3
sous Queries
et c'est exactement ce que nous voulons :
8. Allez à la Transform
et cliquez sur Run Python Script
:
9. Cela ouvre le Run Python Script
éditeur. Et vous peut commencer à écrire vos scripts ici même, mais cela rendra les choses inutilement compliquées dans les étapes suivantes. Donc ne faites rien d'autre que de cliquer OK
:
10. Dans la barre de formule, vous verrez la formule = Python.Execute("# 'dataset' holds the input data for this script#(lf)",[dataset=#"Changed Type"])
. Et remarquez que vous avez une nouvelle étape sous Étapes appliquées nommée Run Python Script
:
11. Il y a plusieurs détails intéressants dans la capture d'écran ci-dessus, mais nous allons d'abord décomposer les arguments de la fonction = Python.Execute("# 'dataset' holds the input data for this script#(lf)",[dataset=#"Changed Type"])
.
La partie "# 'dataset'" holds the input data for this script#(lf)"
insère simplement le commentaire que vous pouvez voir dans le fichier Python Script Editor
. Ce n'est donc pas important, mais vous ne pouvez pas non plus le laisser vide. J'aime utiliser quelque chose de plus court comme "# Python:"
.
La partie [dataset=#"Changed Type"]
est un pointeur vers l'objet vide Table3
dans l'état où il se trouve Changed Type
. Ainsi, si la dernière chose que vous faites avant d'insérer un script Python est autre chose que de changer les types de données, cette partie sera différente. La table est ensuite rendue disponible dans votre script python en utilisant dataset
comme un cadre de données pandas. En gardant cela à l'esprit, nous pouvons apporter quelques modifications très utiles à la formule :
12. Changez la barre de formule en = Python.Execute("# Python:",[df1=Table1, df2=Table2])
et frappez Enter
. Cela rendra Table1
y Table2
disponibles pour vos scripts Python sous la forme de deux dataframes pandas nommés df1
y df2
respectivement.
13. Cliquez sur l'icône d'engrenage (ou est-ce une fleur ?) à côté de Run Python script
sous Applied Steps
:
14. Insérez l'extrait suivant :
Code :
import pandas as pd
df3 = pd.merge(df1, df2, how = 'left', on = ['Date'])
df3['Value3'] = df1['Value1']*df2['Value2']
Cela rejoindra df1
y df2
sur le Date column
et insérez une nouvelle colonne calculée nommée Value3
. Ce n'est pas très fantaisiste, mais avec cette configuration vous pouvez faire tout ce qui est vous voulez avec vos données dans le monde de Power BI et avec la puissance de Python.
15. Cliquez sur OK
et vous verrez ça :
Vous verrez df3
énumérés sous les cadres de données d'entrée df1
y df2
dans le carré bleu. Si vous avez assigné d'autres dataframes comme étape dans vos calculs dans le script Python, ils seront également listés ici. Afin de le transformer en un tableau accessible pour Power BI, il suffit de cliquer sur Table
comme indiqué par la flèche verte.
16. Et c'est tout :
Notez que le type de données de l'élément Date column
est réglé sur Date
par défaut, mais vous pouvez le changer en Text
comme expliqué précédemment.
Cliquez sur Home > Close&Apply
pour quitter la Power Query Editor
et revenir à l'endroit où tout a commencé dans Power BI Desktop.