Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
Para el tutorial de hoy, vamos a crear una función de consulta personalizada de LuckyTemplates que se ocupará de un formato de datos apilados común y difícil de manejar. Esta técnica es fácilmente reutilizable en múltiples informes y múltiples tablas. Puedes ver el video completo de este tutorial en la parte inferior de este blog.
Esta es una continuación del tutorial que hice recientemente en el que tratamos con un formato común de datos apilados difícil de manejar y usamos Modulo, Pivot y algunas funciones de limpieza con Power Query para transformar esos datos en un formato organizado y funcional.
Es muy probable que tengas que repetir este proceso. Si este tipo de formato resultó de copiar y pegar, probablemente volverá a suceder. Entonces, en este caso, probablemente querrá crear una función personalizada que se pueda reutilizar en varios informes y tablas, independientemente de cómo se llamen y qué más haya en esas tablas.
Tabla de contenido
Cómo crear y depurar funciones de consulta personalizadas de LuckyTemplates
Pasemos a Power Query sobre esto. Si vamos a nuestra tabla de datos, en el editor avanzado, tenemos el código M de cómo terminamos pasando de esa pila de datos al formato deseado.
Si queremos reutilizar esto, simplemente hacemos clic con el botón derecho en Datos y decimos Crear función .
Dice que no va a hacer referencia a ningún parámetro, pero está bien crear una función sin parámetros. Vamos a responder que sí, porque vamos a agregar los parámetros a medida que avanzamos en el Editor avanzado. Llamaremos a esta función, Unstack – 3 Elements , solo porque tenemos las tres filas en el formato sin formato. Si tuviéramos un formato de dos filas, probablemente construiríamos uno separado que tuviera dos o cuatro elementos.
Así que ahora tenemos este Invoke, no tenemos parámetros, vayamos al Editor avanzado y comencemos a trabajar en este.
Primero, no necesitamos esta Fuente. Vamos a usar los parámetros de la función para definir nuestra fuente.
Queremos definir el parámetro que va a ingresar. Lo hacemos con un paréntesis abierto y luego un nombre de parámetro. Llamemos a esto Stack , que será esa columna de datos que son los datos de la pila sin formato que se obtuvieron al pegar las direcciones de correo electrónico.
Queremos que esto entre como una lista y queremos que esto resulte en una tabla porque a medida que la giramos de esa única columna a varias columnas, pasa de una lista a una tabla. Y ahora, necesitamos convertir esa lista entrante en una tabla para que podamos agregar nuestro índice, iniciar nuestro Modulo unpivot y hacer todo lo necesario para reformatearlo.
Lo llamaremos ConvertStack , y usará una función llamada Table.FromList . Como muchas de las funciones M, hace exactamente lo que dice. Solo se necesita una lista. En este caso, la lista será nuestra lista Stack. Y luego, necesitamos reemplazar la Fuente aquí con nuestro ConvertStack. ¡Se ve bastante bien! No tenemos errores de sintaxis, así que presione Listo.
Ahora nos está dando lo que queríamos, que es la posibilidad de elegir una columna.
Luego, elegiremos TestData, que son los datos mal formateados. Elegiremos la columna Valor y luego haremos clic en Aceptar. Después de eso, hacemos clic en Invocar.
Sin embargo, obtenemos este error. Es muy difícil precisar qué es este error. Uno de los problemas con las funciones personalizadas es que no desglosan los Pasos aplicados, solo obtiene un paso para toda la función personalizada. Pero hay una forma de evitarlo en la depuración que te mostraré. Será mucho más fácil averiguar qué está pasando aquí.
En lugar de ejecutar esto por el momento como una función, lo ejecutaremos como una consulta. Solo vamos a iniciar manualmente esa llamada de pila. Tenemos que definir qué es Stack porque no lo estamos dibujando a través de la interacción de elegirlo en Invoke. Entonces, tenemos Stack igual a TestData y la columna Value de TestData.
Lo que hace es dividirlo ahora en Pasos aplicados. Esto nos ayudará a averiguar por qué esto no funciona. Observe una cosa interesante cuando extraemos Stack. Inicialmente, extrae TestData[Value], pero cuando lo convertimos en una tabla, en lugar de Value es el encabezado de la columna, el encabezado de la columna ahora es Column1.
Recuerde el mensaje de error, fue que no pudo encontrar la columna Valor. La razón por la que no pudo encontrar la columna Valor es que la función Table.FromList cambia el nombre a Columna1.
Si bajamos por los Pasos Aplicados, podéis ver que es en el paso Personalizado Añadido donde nos da el error. Aquí es donde no se encontró el valor del registro.
Entonces, si vamos al Editor avanzado, encontramos ese campo Personalizado, y podemos ver que está en el Texto. Eliminar donde estamos eliminando esos caracteres basura que no necesitábamos, pero aún se refiere a el campo Valor. Lo cambiaremos a Column1. Del mismo modo, en el campo Columnas eliminadas, se refiere a Valor, por lo que también lo cambiaremos a Columna1.
Y cuando llegamos al final de los Pasos aplicados, produce el resultado final perfecto.
Ahora que sabemos que esto está funcionando bien, solo tenemos una cosa más que hacer. Recuerde que para depurarlo, convertimos la función personalizada en una consulta. Entonces, ahora necesitamos tomar esa consulta y volverla a convertir en una función.
Creación de una función de limpieza de texto personalizada en
código M de Power Query en columnas personalizadas de Power Query | Consulta de funciones de LuckyTemplates
y operadores en el editor de consultas
Conclusión
En este tutorial, creamos esta función personalizada, la depuramos, la probamos y funciona muy bien. Y ahora, cada vez que tengamos una pila de tres elementos, podemos simplemente seleccionar esa tabla, elegir esa columna dentro de la tabla y ejecutar esa función personalizada. Luego, aplique el Modulo, el unpivot y limpie.
Esto debería brindarle algunas buenas herramientas en términos de creación de funciones personalizadas. Además, recuerde ese truco sobre la depuración al volver a convertirlo en una consulta de una función y luego volver a cambiarlo después de la depuración. Es una herramienta realmente valiosa que facilita mucho la depuración de funciones personalizadas.
¡Mis mejores deseos!
Qué es uno mismo en Python: ejemplos del mundo real
Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.
En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.
Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.
En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.
Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.
Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.
Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.
Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.
¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber