Home
» Power BI
»
Clasificación de LuckyTemplates y agrupación personalizada
Clasificación de LuckyTemplates y agrupación personalizada
Como analistas de datos, a menudo se nos exige agrupar y clasificar valores de un conjunto de datos para generar tendencias e información. Sin embargo, no todo el mundo sabe cómo realizar estas tareas de forma sencilla con LuckyTemplates.
Para este tutorial, utilizaremos una tabla de datos con tres columnas, a saber, ID de registro , Prioridades y Minutos . Nuestro objetivo es identificar el 5% superior de los registros con prioridades 1 o 2 según la cantidad máxima de minutos.
Conjunto de datos para crear clasificación y agrupación de LuckyTemplates
Así es como se ve el conjunto de datos en Power Query. No tiene ningún atributo para separar las prioridades 1 y 2 del resto, lo que nos obliga a usar la función M Table.Partition . Esto generará una columna auxiliar para segregar las prioridades 1 y 2 de otras filas.
Función de LuckyTemplates: Tabla.Partición
Para examinar cómo usar Table.Partition para segmentar nuestros datos, comenzaremos abriendo el Editor avanzado .
En la ventana que aparecerá, agregue una nueva línea para crear una nueva variable. Llamemos a la variable Particiones . Agregue la función Table.Partition que requiere la siguiente información.
La tabla que queremos particionar. En nuestro caso, es la Fuente.
La columna a evaluar. Esta es la columna de la tabla de retorno en la que se colocarán las reglas. Esa será la columna Prioridad .
El número de grupos a crear. Esto también se refiere a la cantidad de tablas para particionar, y queremos tener 2 tablas.
Una función hash. Para obtener un valor hash, necesitamos usar un número. Comencemos la función hash con cada uno seguido de un guión bajo que representa el valor actual. Luego, agreguemos la condición es menor que tres , luego devuelva cero más uno .
En la línea 5, cambiaremos Source a Partitions , dándonos la siguiente solución.
Haga clic en Listo para ver cómo afecta a nuestra tabla. Como se muestra a continuación, la función Table.Partition crea una lista con dos tablas anidadas .
Al hacer clic en Tabla 1 , se abre una tabla de vista previa que contiene todos los registros con una prioridad inferior a tres (prioridades 1 y 2).
Todas las filas restantes están en la Tabla 2 .
Dado que las prioridades 1 y 2 ahora están agrupadas en una sola tabla, ahora podemos usar la tabla para calcular nuestro 5% superior.
Función de LuckyTemplates: Table.RowCount
Table.RowCount se puede usar para determinar la cantidad de filas necesarias para cumplir con el requisito del 5 % . Contará el número de filas con prioridades 1 y 2, luego obtendrá el 5% del número obtenido.
Para comenzar, abra la ventana del Editor avanzado desde la esquina superior izquierda.
Luego, agregaremos una nueva línea y una nueva variable, a la que llamaremos nRow. Necesitamos extraer nuestra primera tabla copiando su nombre de variable Particiones de la línea 3.
A continuación, utilizaremos el operador de índice posicional para acceder al primer elemento de la lista de la primera tabla. Luego, ajuste el operador Table.RowCount alrededor de Partitions(0). Luego lo multiplicaremos por 0.05 para obtener 5%.
Además, redondee el número a cero decimal usando la función Number.Round . Finalmente, cambiaremos la última línea de Partitions a nRow.
Esto debería devolver dos como se muestra a continuación.
El resultado significa que para cumplir con el requisito del 5%, necesitamos marcar dos filas de la Tabla 1. Para hacer eso, podemos usar la nueva función M Table.AddRankColumn.
Función de LuckyTemplates: Table.AddRankColumn
En esta sección, utilizaremos la función Clasificación de LuckyTemplates para clasificar nuestras filas. Table.AddRankColumn se usa para agregar una nueva columna de clasificación a una tabla según nuestros criterios de comparación.
Para comenzar, abra la ventana Editor avanzado . Cree la Tabla 1 y asígnele el nombre t1 en una nueva línea. Luego, use Table.AddRankColumn y agregue nuestra primera tabla, Particiones (0). También necesitamos asignar un nuevo nombre de columna que llamaremos i.
Para los criterios de comparación, queremos clasificar los minutos de mayor a menor utilizando {“Minutes”, Order.Descending} .
Finalmente, agregue RankKind=RankKind.Ordinal . Esto obligará a que todos los elementos reciban un número único, incluso si se evalúan como iguales. Luego, cambiaremos nRow a t1 para devolver la Tabla 1.
Nuestra solución debería verse así.
Haga clic en Listo para obtener una tabla similar a esta.
Agregar un filtro booleano
También agregaremos un filtro booleano a nuestra tabla porque ya no queremos mantener la columna de clasificación. En cambio, lo que queremos es agregar un filtro booleano para identificar solo las dos filas superiores que debemos excluir.
Entonces, regresemos a la ventana del Editor avanzado y agreguemos una columna personalizada. Agregue una nueva línea con la función Table.AddColumn y llame a la nueva columna Exclude .
Para columnGenerator, podemos mirar la columna recién creada usando cada i menor o igual a nuestro número nRow, que es el número de filas a excluir. También les asignaremos un tipo de datos usando type logical .
Nuestra solución debería verse así.
Haga clic en Listo para obtener una tabla similar a la siguiente.
Ya no necesitamos nuestra columna de ayuda para poder eliminarla de nuestra tabla.
Entonces, en la ventana del Editor avanzado , usemos Table.RemoveColumns y eliminemos la columna i .
Luego haga clic en Listo .
Combinando Tablas
Hemos creado una nueva versión de nuestra Tabla 1 anidada y necesitamos crear el mismo diseño para nuestra Tabla 2 anidada. Y para esa tabla, necesitamos agregar una columna de exclusión donde todos los valores deben ser iguales a VERDADERO.
En el Editor avanzado y cree una nueva variable llamada t2. Agregaremos una columna personalizada usando Table.AddColumn y llamaremos Partitions (1) . Luego, agregue una columna Excluir y configure columnGenerator como verdadero, escriba lógico .
Queremos devolver t2 editando la línea 13.
Deberíamos tener una mesa como esta.
Lo último que debemos hacer es combinar estas dos tablas nuevamente. En la ventana del Editor avanzado , agregue una nueva variable llamada t que sea igual a t1 y t2 .
Haga clic en Listo para obtener nuestra tabla final que se parece a la siguiente. Ahora, tenemos una tabla clasificada y agrupada según nuestros criterios dados, y con el 5% superior marcado para exclusión.
En este blog, aprendió a usar las funciones Table.Partition , Table.AddRankColumn y Table.RemoveColumns en Power Query. Nuestro conjunto de datos de muestra tiene 44 filas de prioridades 1 y 2, que agrupamos y clasificamos con éxito, con el 5% superior marcado en consecuencia.
Con este nuevo conocimiento sobre el uso de estas funciones, ahora puede usar la clasificación de LuckyTemplates y las características de agrupación personalizada para su próximo conjunto de datos.