Recabamos en diferentes espacios para así tener para ti la respuesta para tu problema, si continúas con alguna inquietud deja tu pregunta y te respondemos porque estamos para ayudarte.
Solución:
Este es el mismo desafío que se ha descrito aquí para los scripts R. Esa configuración también debería funcionar para Python. Sin embargo, descubrí que ese enfoque tiene un inconveniente: almacena la nueva tabla unida o calculada como una versión editada de una de las tablas anteriores. La siguiente sugerencia demostrará cómo puede producir una tabla calculada completamente nueva sin alterar las tablas de entrada (excepto cambiar el tipo de datos de las columnas de fecha de Date
a Text
Debido a esto.)
Respuesta corta:
En el Power Query editor
, sigue estos pasos:
-
Cambiar el tipo de datos del
Date columns
en ambas columnas paraText
. -
Hacer clic
Enter Data
. Solo hacer clicOK
. -
Activar el nuevo
Table3
y useTransform > Run Python Script
. Solo hacer clicOK
. -
Active la barra de fórmulas y reemplace lo que contiene con
= Python.Execute("# Python:",[df1=Table1, df2=Table2])
. Hacer clicEnter
. -
Si se le solicita que lo haga, haga clic en
Edit Permission
yRun
en el siguiente paso. -
Bajo
Applied Steps
, en el nuevo paso llamadoRun Python Script
, haga clic en el icono de rueda dentada para abrir elRun Python Script
editor. -
Inserte el fragmento a continuación y haga clic en
OK
.
Código:
import pandas as pd
df3 = pd.merge(df1, df2, how = 'left', on = ['Date'])
df3['Value3'] = df1['Value1']*df2['Value2']
Junto a df3
, haga clic en Table
, y eso es:
Los detalles:
La lista anterior deberá seguirse con mucho cuidado para que todo funcione. Así que aquí están todos los pequeños detalles sucios:
1. Cargue las tablas como archivos CSV en Power BI Desktop usando Get Data
.
2. Hacer clic Edit Queries
.
3. En Table1
, Haga clic en el símbolo junto al Date column
, Seleccione Text
y haga clic en Replace Current
4. Haz lo mismo para Table2
5. Sobre el Home
pestaña, haga clic en Enter Data
6. En el cuadro que aparece, no haga nada más que hacer clic en OK
.
7. Esto insertará una tabla vacía llamada Table3
bajo Queries
, y eso es exactamente lo que queremos:
8. Ve a la Transform
pestaña y haga clic en Run Python Script
:
9. Esto abre el Run Python Script
editor. Y tú poder comience a escribir sus scripts aquí mismo, pero eso hará que las cosas se compliquen innecesariamente en los siguientes pasos. Así que no hagas nada más que hacer clic OK
:
10. En la barra de fórmulas verá la fórmula = Python.Execute("# 'dataset' holds the input data for this script#(lf)",[dataset=#"Changed Type"])
. Y observe que tiene un nuevo paso en Pasos aplicados llamado Run Python Script
:
11. Hay varios detalles interesantes en la captura de pantalla anterior, pero primero vamos a desglosar los argumentos de la función = Python.Execute("# 'dataset' holds the input data for this script#(lf)",[dataset=#"Changed Type"])
.
La parte "# 'dataset'" holds the input data for this script#(lf)"
simplemente inserta el comentario que puede ver en el Python Script Editor
. Así que no es importante, pero tampoco puedes dejarlo en blanco. Me gusta usar algo más corto como "# Python:"
.
La parte [dataset=#"Changed Type"]
es un puntero al vacío Table3
en el estado en que se encuentra bajo Changed Type
. Entonces, si lo último que hace antes de insertar una secuencia de comandos de Python es algo más que cambiar los tipos de datos, esta parte se verá diferente. Luego, la tabla está disponible en su secuencia de comandos de Python usando dataset
como marco de datos de pandas. Con esto en mente, podemos hacer algunos cambios muy útiles en la fórmula:
12. Cambie la barra de fórmulas a = Python.Execute("# Python:",[df1=Table1, df2=Table2])
y golpea Enter
. Esto hará Table1
y Table2
disponible para sus scripts de Python como dos marcos de datos pandas llamados df1
y df2
, respectivamente.
13. Haga clic en el icono de rueda dentada (¿o es una flor?) Junto a Run Python script
bajo Applied Steps
:
14. Inserte el siguiente fragmento:
Código:
import pandas as pd
df3 = pd.merge(df1, df2, how = 'left', on = ['Date'])
df3['Value3'] = df1['Value1']*df2['Value2']
Esto se unirá df1
y df2
sobre el Date column
e inserte una nueva columna calculada llamada Value3
. No es demasiado elegante, pero con esta configuración puede hacer cualquier cosa que desee con sus datos en el mundo de Power BI y con el poder de Python.
15. Hacer clic OK
y verás esto:
Verás df3
enumerados en los marcos de datos de entrada df1
y df2
en el cuadrado azul. Si ha asignado otros marcos de datos como un paso en sus cálculos en la secuencia de comandos de Python, también se enumerarán aquí. Para convertirlo en una tabla accesible para Power BI, simplemente haga clic en Table
como lo indica la flecha verde.
dieciséis. Y eso es:
Tenga en cuenta que el tipo de datos del Date column
se establece en Date
de forma predeterminada, pero puede cambiar eso a Text
como se explicó anteriormente.
Hacer clic Home > Close&Apply
para salir del Power Query Editor
y vuelva a donde empezó todo en Power BI Desktop.
Puede crear una consulta en blanco y reemplazar su contenido en el Editor avanzado:
let
Source = Python.Execute("# Python:#(lf)",[df1=Table1, df2=Table2])
in
Source
Después, puede hacer clic en el engranaje junto a la Fuente para agregar su código Python donde puede usar df1 y df2.
Te invitamos a favorecer nuestro estudio escribiendo un comentario o puntuándolo te lo agradecemos.