Saltar al contenido

Power BI: ¿Cómo usar Python con varias tablas en el Editor de Power Query?

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:

  1. Cambiar el tipo de datos del Date columns en ambas columnas para Text.

  2. Hacer clic Enter Data. Solo hacer clic OK.

  3. Activar el nuevo Table3 y use Transform > Run Python Script. Solo hacer clic OK.

  4. Active la barra de fórmulas y reemplace lo que contiene con = Python.Execute("# Python:",[df1=Table1, df2=Table2]). Hacer clic Enter.

  5. Si se le solicita que lo haga, haga clic en Edit Permission y Run en el siguiente paso.

  6. Bajo Applied Steps, en el nuevo paso llamado Run Python Script, haga clic en el icono de rueda dentada para abrir el Run Python Script editor.

  7. 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:

ingrese la descripción de la imagen aquí

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

ingrese la descripción de la imagen aquí

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.

ingrese la descripción de la imagen aquí

7. Esto insertará una tabla vacía llamada Table3 bajo Queries, y eso es exactamente lo que queremos:

ingrese la descripción de la imagen aquí

8. Ve a la Transform pestaña y haga clic en Run Python Script:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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 columne 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.

ingrese la descripción de la imagen aquí

15. Hacer clic OK y verás esto:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *