Cómo elaborar un Dashboard sobre el COVID-19 – parte 2

En la parte 1 de esta serie, definimos el problema a resolver e hicimos lo más importante para una solución analítica en Power BI: definimos el modelo de datos. Ahora vamos a cargar y adecuar al modelo la data disponible. Para referencia, repito aquí el enlace a los datos y muestro el modelo de datos nuevamente.

Modelo de Datos

Ahora, iniciamos Power BI Desktop e ingresamos a la opción de transformar datos (llamado también Power Query para quienes vienen de usarlo en Excel), según se ve en la foto siguiente:

Iniciar el editor de consultas

Aparece una segunda ventana llamada Editor de Consultas. En mi opinión, la mejor de las funcionalidades de Power BI es la que ofrece esa ventana: adecuar la data a mi modelo de modo que, cuando la data se actualice, yo no tenga que preocuparme para que los dashboards se actualicen solos. Vamos a conectarnos directamente a la web donde está la data (el enlace exacto es: https://opendata.ecdc.europa.eu/covid19/casedistribution/csv )

Nota: Si, por otro lado, decides descargar manualmente la data de la web, guardarla en el disco duro y hacer que Power BI la tome desde ahí, esa descarga manual tendrías que hacerla siempre, antes de refrescar el dashboard.

Entonces, vamos a conectarnos a la data que está en la web. En Power BI Desktop, seleccionamos las opciones que siguen:

En la ventana que aparece, pegamos el enlace y damos OK

En la nueva ventana que aparece, en la parte inferior, damos “Transformar datos”

La ventana que ahora tenemos en frente se llama Editor de Consultas. En la parte izquierda de esa ventana aparece la relación de consultas (solo tenemos una, la que acabamos de crear). Una consulta no es más que un conjunto de pasos, como si fuera una receta de cocina. Esos pasos son aplicados en orden y sirven para transformar la data según se desea. A la derecha, aparecen los diversos pasos que conforman la consulta seleccionada. Al medio, aparecen las diversas columnas identificadas en la data y una vista previa de la misma data. Si bien este es un manual básico no puedo dejar de mencionar que es muy importante que cada columna tenga asignado el tipo de datos correcto (fecha, texto o número, por ejemplo). El tipo de datos asignado aparece como un símbolo al costado del nombre de la columna. En este caso, la asignación de tipos está correcta.

Ahora bien, sabemos que nuestro modelo de datos tiene tres tablas y que la información que tenemos sirve para poblar dos de ellas. Para no conectarnos dos veces a la fuente (una vez por cada tabla), usaremos un truco avanzado: la referencia entre consultas.

Truco avanzado: para poblar varias tablas desde una sola fuente de datos sugiero usar la referencia entre consultas

Hagamos clic derecho sobre la consulta y seleccionamos Referencia.

Con ello aparece una nueva consulta (por ahora llamada csv 2). Esta consulta nueva, al ser una referencia, toma como insumo la salida de la consulta original. No es una copia de la primera: necesita que exista la consulta original. Esta nueva consulta dará origen a la tabla “Contagio” de nuestro modelo. Por eso la renombro.

La consulta “Contagio” tiene demasiadas columnas en este momento. Solo necesitamos, según nuestro modelo, fecha, país, número de casos y número de muertes. Seleccionemos esas cuatro columnas (con control + clic) y luego hagamos clic derecho sobre una de las columnas seleccionadas y escogemos “Quitar otras columnas”.

Ahora debemos estar viendo una consulta con solamente cuatro columnas, aquellas que fueron seleccionadas en el paso anterior. El orden en que fueron seleccionadas, es el orden en el que aparecerán (izquierda a derecha). Yo seleccioné -en orden- fecha, país, casos y muertes. Cabe mencionar que el orden de las columnas no es importante para Power BI.

Ya está casi lista nuestra consulta para dar origen a la tabla Contagio. Solo falta cambiar el nombre a las columnas (ya sea con doble clic en el nombre, o con clic derecho y renombrar)

Para formar la consulta País, hacemos el mismo truco inicial: damos clic derecho y “Referencia” sobre la consulta ORIGINAL, aquella que trae los datos desde la web (la consulta original -recordemos- se llama csv).

Ahora tenemos tres consultas. Cambiemos el nombre a la nueva consulta: llamémosla País. Les recuerdo que estamos construyendo la consulta que dará origen a la dimensión País. De todas las columnas que se ven en pantalla, solo nos sirven las columnas “countriesAndTerritories”, “geold” y “countryterritoryCode” que son el nombre del país, el código de dos letras y el de tres. Seleccionemos las tres con control clic y luego damos clic derecho sobre una de las seleccionadas y le damos en “Quitar otras columnas”, tal como hicimos con “Contagio”. Nos queda esto:

Tal como está, esto no puede ser nuestro maestro de países pues tiene valores repetidos. Luego de renombrar las columnas, damos clic derecho sobre el nombre del país y seleccionamos Eliminar Duplicados:

Ahora sí tenemos un maestro de países. Ojo: nuestro maestro de países no contiene la lista de todos los países del mundo, sino solo de aquellos que aparecen en el archivo que sacamos de la web. Este dato no es menor. Hemos creado un maestro de países pero no comenzando de una lista oficial de países en el mundo, sino -por facilidad- comenzando por lo reportado en la data. Esto podría tener implicancias para otro tipo de análisis (ej. será imposible listar todos aquellos países que NO han sufrido contagio alguno). Pero vamos a dejarlo así pues a nosotros nos sirve así.

Por si acaso, hasta ahora todo lo que hemos hecho es decir “qué pasará” al cargar la data; en realidad no hemos transformado ni eliminado una sola columna ni fila de nada. Estamos “escribiendo la receta” no siguiéndola paso a paso para preparar un platillo (una tabla). Bueno, antes de cargar la data vamos a regresar a la consulta original “csv”. En realidad no necesitamos que esta consulta genere una tabla . Nos basta las consultas “Contagio” y “Pais”. Pero tampoco podemos eliminar “csv” pues “Contagio” y “Pais” dependen de su existencia. Lo que debemos hacer es que esa consulta no se convierta en una tabla. Para ello, clic derecho en csv y le quitamos el check en “Habilitar Carga”. Debe quedar así:

Nótese que en la foto ya no está el check mencionado, y que ahora la palabra “csv” aparece en letra cursiva (eso indica que esa consulta no terminará generando una tabla).

Estamos listos para generar las tablas. Vamos al menú Inicio y le damos “Cerrar y Aplicar”

Esto nos regresa a la ventana principal de Power BI Desktop. A la derecha, en el panel de campos, está la lista de tablas y cada tabla tiene una lista desplegable con los campos respectivos. Si desplegamos ambas, se ve así:

Nos falta una tercera tabla: Fecha. El maestro de fechas es especial para Power BI pues su correcta construcción nos permitirá hacer fácilmente cálculos tipo Acumulados, o comparativos contra periodos anteriores. Para ello, el maestro de fechas debe cumplir dos condiciones.

El maestro de fechas debe:
1. tener un registro para cada día del año
2. tener una columna TIPO fecha

La manera más fácil de construir un maestro de fechas es usar la función CALENDARAUTO( ). La explicación detallada de esta función queda fuera del alcance de este manual, pero baste saber que ella detecta la menor y mayor fecha existentes entre todas las tablas del modelo, y con ello genera datos desde el 1 de enero del año que incluye a la fecha más antigua, hasta el 31 de diciembre del año de la mayor fecha. Pasemos a crear la tabla y veremos los resultados. Vamos al menú “Modelado” y seleccionamos “Nueva tabla”.

Al hacer eso se abre un espacio para ingresar una fórmula y crear la tabla. El lenguaje de esas fórmulas se llama DAX. Simplemente, hagamos un “acto de fe” (créanme) y escribamos esta fórmula: Fecha = CALENDARAUTO() finalizando con la tecla Enter.

Para ver el resultado de esta fórmula, demos clic al botón “Datos” señalado en el gráfico:

A la derecha, seleccionemos la tabla Fecha y veremos el resultado:

Vemos que la tabla va desde el 1 de enero de 2019 (notemos que el archivo original de la web trae data desde el 31 de diciembre de 2019) hasta el 31 de diciembre de 2020. Además, si seleccionamos la única columna de la tabla (la columna se llama Date), vemos que el tipo de datos es Fecha (en realidad Fecha/hora) como se observa a continuación

Hasta aquí vemos que la tabla generada automáticamente, cumple con las dos condiciones mencionadas antes para ser un maestro de fechas (es tipo fecha y va de 1 de enero hasta 31 de diciembre). Haremos dos cambios: cambiaremos el tipo de datos de Fecha/hora a solo fecha, y luego el formato de la columna lo cambiamos a dd/mm/yyyy (día , mes, año) para comodidad de lectura (esto no afecta cálculo alguno; es solo cambio estético). La foto a continuación muestra ello:

Finalmente, teniendo ya las tres tablas creadas, generaremos las relaciones entre ellas. Para ello, damos clic en el botón “Modelo”:

Al hacerlo, aparecen las tres tablas y, probablemente (depende de la configuración de tu Power BI Desktop), ya haya alguna relación (una línea) uniendo un par de ellas. Al margen de si esa relación está o no, vía “arrastrar y soltar”, arrastremos el campo “Date” de la tabla “Fecha” y soltémoslo SOBRE el campo “Fecha” de la tabla “Contagio”. Lo mismo debería pasar entre el campo “Pais” de la tabla “Pais” soltándolo encima del campo “Pais” de la tabla “Contagio”. El modelo en Power BI Desktop se ve ahora así:

Es importantísimo asegurarse de que la relación esté hecha entre los campos correctos. Una manera rápida de asegurar ello es dando clic sobre la misma relación y revisar qué campos se resaltan. Así:

Hasta aquí tenemos el modelo armado. Si bien falta agrupar países en Continentes, tenemos lo necesario para comenzar a armar un dashboard, cosa que haremos en la siguiente publicación.

Termino con un consejo: vayan a menú Archivo y Opciones:

En la ventana que aparece, seleccionemos abajo a la derecha “Carga de Datos” y quitemos el check en “Auto Fecha/hora”, tal como se ve a continuación:

En otro artículo explicaré qué logramos exactamente al desactivar esta opción pero baste saber (al menos de memoria) que cuando uno define su propia tabla de Fecha, es mejor que esté deshabilitada. De hecho, si usted ya no es principiante en Power BI, deshabilítela de una vez (se quedará deshabilitada para siempre).

Un comentario sobre “Cómo elaborar un Dashboard sobre el COVID-19 – parte 2

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s