Categoría: Alteryx

Isochrones o análisis de tiempo de conducción

Dentro de los análisis con datos geográficos que se pueden hacer, uno de los que más me han pedido en los últimos meses es analizar distintos tiempos de conducción a partir de localizaciones determinadas, o isochrones en inglés. Las posibles aplicaciones son bastante amplias: empresas de transporte que quieren conocer el área que pueden abarcar desde ciertas localizaciones, tiendas que quieren conocer el número de clientes en su radio de acción, cobertura de agentes comerciales…

Alteryx cuenta con su propio módulo de tiempo de conducción disponible, pero se trata de un módulo adicional de pago que no siempre está a disposición de los clientes, o los trámites burocráticos para comprar dicho módulo para proyectos concretos cuando el tiempo para realizar el proyecto es corto impiden que se pueda disponer de él a tiempo.

Open Route Service

A través de Dan Farmer, compañero mío en The Information Lab, descubrí https://openrouteservice.org. Una web open source (como deja claro su nombre) que ofrece distintos servicios a través de su API geográficos a través de su API. El uso es gratuito y libre incluso para uso comercial, tan sólo contando un límite de 2,500 solicitudes al día por token y usuario. Cualquiera puede en unos segundos darse de alta en su web, solicitar fácilmente un token para usar la API, y comenzar a utilizar cualquiera de sus servicios: cáculo de rutas, puntos de interés, geocodificación, geocodificación inversa, isochrones o matrices de tiempo y distancia.

Cuenta además con una sección, API playground, muy fácil de usar que permite ver los distintos parámetros disponibles para cada uno de los servicios y ver la query necesaria para utilizarlos.

Usando la API con Alteryx

Estos últimos días he estado trabajando para crear varias macros que puedan utilizarse en Alteryx para cada uno de dichos servicios. La primera de ellas, disponible ya en la galería pública de Alteryx para su uso gratuito en Alteryx, es una macro que precisamente crea isochrones a partir de uno o varios puntos geográficos que definamos. Para ello sólo es necesario conocer la latitud y longitud del lugar de partida, un token o key para utilizar la API y seleccionar los parámetros que queremos.

Entre los parámetros disponibles en la macro, podemos definir si queremos realizar el análisis en base a la distancia o al tiempo, el rango (metros para la distancia o segundos para tiempo) con la posibilidad de añadir varios rangos si es necesario, y el perfil del isochrones, entre los que destacan tiempo de conducción, tiempo de conducción con camiones de alto tonelaje, bicicleta o a pie.

Teniendo como variables tan sólo la latitud y longitud, y conectando esos datos a la macro, podemos obtener tras configurarla un resultado como este.


En este caso particular, al configurar la macro en base al tiempo de conducción, vemos claramente como podemos cubrir áreas que se encuentran más lejos del punto de origen que están conectadas con carreteras de vía rápida o autopistas. Si tenemos información interna en nuestra empresa de clientes, tiendas, localizaciones de interés, etc. podemos así analizar con más detalle posibles rutas, nuevas tiendas que nos interesa abrir, la cobertura que damos a nuestros clientes o nuestro área de influencia si consideramos una distancia o tiempo máximo determinado que potenciales clientes emplearán para desplazarse. Además, la API devuelve una estimación de la población total cubierta por dicho área.

El workflow detrás de la macro

El workflow detrás de la macro no es excesivamente complejo. Cuenta con distintas herramientas de interface para configurar los parámetros, y luego es un proceso bastante usual de generar la estructura de la query, hacer la llamada a la API, obtener la respuesta en formato JSON y preparar y limpiar los datos de respuesta para hacerlos comprensibles. Básicamente, la macro devuelve un punto geográfico con cada punto del área del isonchrone. Se trata en definitiva de obtener todos esos puntos, crear un polígono con los mismos en el orden correcto, y asegurarse de que la estructura es la correcta en caso de que se use la macro no sólo para un punto concreto, sino para toda una serie de puntos geográficos.

¿Cómo obtener la macro?

Muy fácil. la macro está disponible en la galería pública de Alteryx. Por lo que se puede descargar de forma gratuita en este enlace: https://gallery.alteryx.com/#!app/Calculate-Isochrones/5c1931b00462d724a455ae28. Una vez descargada, sólo hace falta registrarse y crear un token en Open Route Service. Al ser además la primera versión de la macro, cualquier comentario con ideas para mejorarla, cualquier error inesperado que pueda dar en ciertos escenarioso feedback en general es más que bienvenido.

Geocodificar direcciones con la API de Google Maps y Alteryx

El análisis espacial es uno de los grandes puntos fuertes de Alteryx (y uno de mis favoritos). Pero no siempre disponemos de la latitud y longitud de los datos para visualizarlos en un mapa. Así que vamos a ver como geocodificar direcciones utilizando la API de Google Maps y Alteryx, Y transformar direcciones en puntos geográficos con latitud y longitud.

Las direcciones postales

Para este ejemplo voy a utilizar las direcciones de las 32 comisarias de Madrid con Oficina de Denuncias y Atención al Ciudadano. Las direcciones las comisarias las he descargado desde la página web de la policía en este enlace. Y he creado un fichero excel con el nombre de la comisaria y la dirección que tiene este aspecto:

De poco nos sirven las direcciones postales si no podemos posicionarlas en un mapa para poder realizar cualquier análisis que necesitemos. Así que pasemos a informarnos algo más de la API de Google Maps para geocodificar direcciones postales.

La API de Google Maps

Lo que queremos hacer es como hemos dicho antes, transformar las direcciones postales en coordenadas geográficas. Es decir, geocodificarlas (geocoding en inglés). Y la API de Google Maps ofrece este servicio que podéis consultar en esta página web.

Para ello debemos hacer una llamada a la API con la siguiente estructura:

https://maps.googleapis.com/maps/api/geocode/output?parameters

El output es el formato en el que queremos que la API nos devuelva los datos, que puede ser json o xml.

Los parametros (parameters) obligatorios en una solicitud de geocodificación son la dirección (address) o componentes (components) y la key, es decir la llave que utilizaremos para identificarnos y realizar la solicitud. En el anterior enlace podéis consultar todo con mayor detalle, pero para nuestro ejemplo, lo que necesitamos es hacer una llamada como esta:

https://maps.googleapis.com/maps/api/geocode/json?address=Avda.+de+los+Poblados+51+28047+Madrid&components=country:ES&key=MI_API

Como se puede ver la dirección que queremos geocodificar está separada por «+» no por espacios. Hemos añadido el componente country:ES (de España), para acotar la geocodificación a España y después de key= debemos indicar nuestro código de la API.

¿Cómo obtener la clave (key)?

Es bastante sencillo, se pueden seguir los sencillos pasos que se indican en este enlace. Pero no lleva más de un par de minutos. Podemos además restringuir el uso de la API a una IP concreta por ejemplo para asegurarnos de que nadie hace un uso indebido de la misma. La forma más sencilla de crearla es a través de dicho enlace, pero también podemos entrar en la Consola de Desarrolladores y solicitar la clave desde ahí.

¿Pero tengo que pagar algo por el servicio?

El servicio es gratuito hasta un límite de uso. Tal como se indica en este otro enlace, se puede realizar sin ningún tipo de restricción hasta 2.500 solicitudes al día y 50 solicitudes por segundo.

Si necesitamos realizar un mayor uso y no podemos esperar al día siguiente, es entonces cuando podemos habilitar la opción de pago. La opción de pago permite alcanzar las 100.000 solicitudes al día a un precio de 0.50$ por cada 1.000 solicitudes adicionales.

Workflow en Alteryx

Una vez tenemos nuestra clave para utilizar la API, ya podemos empezar a trabajar con Alteryx. A continuación veremos paso por paso el proceso, pero en definitiva nos bastará con 10 herramientas muy sencillas para obtener nuestro resultado. Este es el aspecto global del workflow:

Y para los impacientes, este es el resultado que obtendríamos, primero en nuestro fichero inicial;

Ahora podríamos utilizar este fichero con la latitud y la longitud en Tableau, o también visualizarlo directamente en Alteryx:

geocodificacion con Alteryx y Google Maps API

geocodificacion con Alteryx y Google Maps API

Vamos a ver el workflow paso a paso.

Inputs, primera fórmulas y Append Fields

Son las primeras 5 herramientas que utilizaremos para dar forma a las solicitudes que realizaremos a la API con la posterior herramienta Download.

La primera herramienta Input es simplemente para leer el fichero excel con las direcciones, por lo que no tiene mayor secreto. La segunda herramienta Input es un Input de texto en el que en la primera columna, que he llamado API, he pegado la parte inicial de la solicitud a la API que vimos anteriormente: https://maps.googleapis.com/maps/api/geocode/json?address=

La segunda columna la he llamado Key, y en ella he pegado mi clave de la API.

En la primera fórmula tan sólo he utilizado la función REPLACE para sustituir cualquier espacio en el campo de Dirección por un +. Ya que es el formato que Google nos indica en el que se debe realizar la solicitud.

A continuación, la herramienta Append Fields nos sirve para pegar la API y la Key del Input de texto, a cada registro de nuestro listado de comisarias del input principal.

La segunda fórmula la he utilizado para generar la query, es decir, la solicitud concreta para cada dirección. De forma que en una nueva columna del fichero llamada «Query» tenga la estructura completa necesaria con este formato: API seguido de la DIRECCION, seguido de el COMPONENTE CON EL PAÍS y seguido por último de la KEY.

Es decir, se trata de generar una única línea de texto como esta:

https://maps.googleapis.com/maps/api/geocode/json?address=Avda.+de+los+Poblados+51+28047+Madrid&components=country:ES&key=MI_API

Y que cada línea tenga la dirección concreta de la comisaria.

Download, JSON Parse y filtrar la latitud y la longitd

Aunque dos de estas tres herramientas tal vez no sean tan habituales, vamos a ver que son muy sencillas de utilizar.

En la herramienta Download tenemos que configurar dos cosas. La primera, indicar en la pestaña Basic, y en el apartado de URL el campo de nuestro fichero que contiene la URL que queremos utilizar. En nuestro caso hemos creado dicho campo justo en el apartado anterior: Query y queremos que el resultado, es decir el Output, sea una cadena de texto en un campo adicional.

En segundo lugar, en la pestaña Payload asegurarnos que en la HTTP Action está seleccionado GET. El resto de opciones podemos dejarlas tal como aparecen por defecto.

Eso es todo con la herramienta Download. La siguiente herramienta, JSON Parse es aún más sencilla. Como en la solicitud a la API hemos indicado que queremos la respuesta en formato JSON utilizamos esta herramienta para preparar automáticamente el resultado de la API. Primero indicamos en el menú desplegable el campo que contiene el formato JSON, que en este caso es un nuevo campo que genera la herramienta Download llamado «DownloadData». Podemos indicar que el resultado esté en un único campo de texto o que añada varios campos según el tipo de datos: valores, texto, etc. Yo he indicado esta segunda opción aunque también podríamos hacerlo con la primera.

A continuación está la herramienta Filtro. Pero ahora es un buen momento para ver el resultado que estamos obteniendo hasta este punto:

Como Alteryx nos indica, tenemos ahora 1.225 registros. Muchísimos más que las 32 comisarias iniciales ¿Por qué? Porque como se puede ver en la imagen de arriba, para cada comisaria está generando muchas filas con distinta información. Tenemos 7 componentes en total con el número de la calle, el nombre de la calle y distintos niveles de información administrativa (municipio, provincia, comunidad autónoma y país), código postal, la dirección completa formateada y varios campos que incluyen latitud y longitud. Los que he resaltado en azul son los que nos interesan en este ejemplo, los demás podemos filtrarlos. Y es precisamente lo que vamos a hacer con la herramienta de filtro, filtrar aquellos valores del campo JSON_Name que no sean la localización de latitud ni longitud.

De este modo ahora tendremos 64 registros. 2 por cada comisaria con la primera fila con los datos de latitud y la segunda con los de longitud. Ya sólo queda por ver 3 herramientas más.

Cross Tab, Select y Create Points

Cross Tab nos permite realizar la función contraria a la que que realiza Transpose. Es decir, permite cambiar la orientación del fichero de datos y pasar los valores que se encuentran en una sola columna a varias columnas. Lo que tenemos que hacer es seleccionar en la parte superior que dice «Group Data by there values» (agrupar datos en estos valores) y marcar ahí los campos que queremos mantener fijos en filas. En este caso el nombre de la comisaría, la dirección, y podríamos mantener también los campos API, Key, Query y Download Headers por si quisiéramos consultaros posteriormente.

A continuación indicamos el campo que queremos que forme nuevas cabeceras, en nuestro caso JSON_Name. Ya que JSON_Name indica si el valor que tenmos en JSON_ValueFloat es la latitud o la longitud, y queremos cada uno en una columna. Y en el valor para las nuevas columnas indicamos el campo que contiene el valor. En nuestro caso JSON_ValueFloat.

Este es el resultado de utilizar Cross Tab.

¡Perfecto! Ahora podemos utilizar la herramienta Select para cambiar el nombre a esos nuevos campos por Latitude y Longitude por ejemplo.

Y por último podemos utilizar la herramienta Create Points para así poder visualizar las comisarias en el mapa que vimos al principio. En esta herramienta basta con indicar el campo correspondiente a la latitud y el correspondiente a la longitud e indicar que son Floating Point. Ya que es el formato en el que Google devuelve los valores.

Ahora ya tenemos un workflow que podemos utilizar las veces que queramos para convertir cualquier dirección en latitud y longitud. Y poder  realizar análiss adicionales en Alteryx o exportar los resultados a Tableau.

Transponer de columnas a filas en Alteryx

Muchos ficheros de datos disponibles en internet están estructurados en múltiples columnas. No obstante, si llevas ya un tiempo trabajando con Tableau, sabrás que en muchas ocasiones es preferible trabajar con menos columnas y más filas por la forma en la que Tableau agrega los datos.

Un buen ejemplo de webs con datos en esta forma son el INE o Eurostat. Donde es muy habitual encontrarnos con archivos que podemos descargar con esta estructura:

Pero como comentaba, muchas veces no es la forma idónea de trabajar con Tableau. Probablemente no queremos tener los distintos grupos de edad en distintas columnas, y preferimos tener una única columna con el número de habitantes y otra columna con el grupo de edad. Además por la forma en la que Tableau agrega los datos, posiblemente ni siquiera necesitemos la columna de Total. Esto podríamos hacerlo en Tableau fácilmente con la función «Pivot» (pivotar). Pero veamos como podemos hacerlo de forma muy sencilla en Alteryx.

Preparación inicial

Tras descargar el fichero en formato Excel, vemos que necesitamos cierta preparación inicial ya que las primeras filas no contienen datos que necesitamos:

Así que primero utilizará la herramienta Sample como en su día expliqué para filtrar las primeras filas con la ventaja habitual de Alteryx, que es la de no modificar nuestro fichero inicial. A continuación utilizaré también la herramienta Dynamic Rename para tomar la primera fila de datos restante como la cabecera de las columnas. Con estas dos herramientas ya tendríamos nuestro fichero de datos listo para el siguiente paso.

Por último utilizaremos la herramienta select para no incluir de aquí en adelante la columna del Total. Ya que para calcularlo no tendremos luego que agregar nuestra medida de población en Tableau.

Transpose

¿Cuál es a nuestro objetivo? Que en lugar de tener una columna para cada grupo de edad, podamos tener una sola columna en la que se indique el grupo de edad concreto, y otra columna con el valor de la población. Es decir, que nuestro fichero tenga solo 3 columnas: Región, Grupo de Edad y Población. Esa es precisamente la función de Transpose: Cambiar la orientación de los datos de vertical a horizontal.

La herramienta Transpose tiene 2 aspecto a configurar. Uno el de «Key Fields» en el cual marcamos los campos o columnas que queramos mantener con la misma orientación. El segundo «Data Fields» donde marcamos las columnas que queremos pivotar. Es decir aquellas que queremos cambiar la orientación. Lo que Alteryx hará será multiplicar el número de filas de nuestra base de datos por el número de columnas que tengamos, reduciendo el número de columnas. En nuestro caso, para cada valor de la variable GEO/AGE tendremos no una fila, sino seis, una para grupo de edad (recordad que hemos filtrado la columna con el Total).

Esa es toda la configuración necesaria en la herramienta. Y este es el resultado una vez ejecutamos el workflow:

Ahora tenemos tan solo 3 columnas en nuestro fichero de datos. Y como vemos en el workflow, hemos pasado de 1.884 filas iniciales a 11.304 filas. 6 veces más ya que teníamos 6 columnas que hemos cambiado la orientación (cada columna de edad salvo el Total) con una única variable a mantener con su orientación original (la región).

Cómo leer múltiples archivos a la vez con Alteryx

El primer paso cuando queremos trabajar con una base de datos en Alteryx es siempre utilizar la herramienta Input para leer nuestra base de datos. A través de dicha herramienta elegimos el archivo con el que queramos trabajar y podemos entonces comenzar a preparar o analizar nuestro fichero. Pero, ¿qué ocurre si no tenemos varios archivos con la misma estrucutra en una carpeta o incluso en varias subcarpetas? Imaginemos por ejemplo que queremos leer a la vez una serie de archivos y no uno solo, como se por ejemplo en la siguiente imagen, ya que nuestros datos están separados en distintos ficheros, y no integrados en uno solo.
La primera opción sería utilizar tantas herramientas Input como archivos queramos leer y a continuación utilizar la herramienta Union para unir todos los ficheros en un único archivo. No obstante, esto requeriría en muchos casos una significativa cantidad de tiempo, especialmente si tenemos decenas y decenas de archivos ¿Cómo podemos entonces leerlos todos de una sola vez?
Muy sencillo. Dentro de la configuración de la herramienta Input en vez de indicar la ruta y el nombre de un archivo concreto, no tenemos más que indicar la ruta y a continuación un asterisco seguido del tipo de archivo que queramos leer. Así por ejemplo, en lugar de tener esta configuración, habitual cuando queremos leer un archivo concreto (fijaros en la siguiente imagen, en el nombre del archivo indicado en la parte superior del menú de configuración Connect a File or Database). :
Lo que haremos es indicar la carpeta donde se encuentran los archivos y a continuación *.csv ya que en este caso queremos leer todos los archivos CSV dentro de la carpeta, ya que la estructura de los mismos es la misma. Podríamos incluso marcar la opción Search SubDirs si quisieramos leer archivos adicionales que se encuentran dentro de subcarpetas en ese mismo directorio.
De esta forma tan sencilla evitaremos utilizar varias herramientas Input, pudiendo leer de un plumazo decenas o cientos de archivos en pocos segundos.

Preparar y visualizar datos de encuestas con Tableau y Alteryx

Tras 9 años trabajando en institutos de investigación de mercados, una de las primeras ideas que me vino a la cabeza cuando descubrí Tableau fue sus posibilidades a la hora de visualizar datos de encuestas. Es cierto que por la forma que tiene Tableau de tratar los datos, la estructura de los ficheros de encuestas con los que habitualmente se trabaja no es la más idónea. Los ficheros de encuestas normalmente cuentan con un registro (una fila) para cada encuestado y una dimensión (columna) para cada una de las variables o preguntas del cuestionario. Es decir, se trabaja con ficheros que habitualmente tienen muchas columnas, mientras que en Tableau es más conveniente tener ficheros con un gran número de registros (filas) y menor número columnas. Esto hace que de primeras, trabajar con archivos de encuestas en Tableau no sea tan intuitivo como podríamos esperar.
No obstante, preparar dichos ficheros y que sea más sencillo visualizar encuestas en Tableau es algo que podemos hacer fácilmente utilizando Alteryx. Para el siguiente ejemplo he utilizado datos de la European Social Survey que cuenta con acaba de actualizar la encuesta realizada en 2014 incluyendo varios países adicionales, entre ellos España, Portugal y Reino Unido y he creado el siguiente workflow en Alteryx:
El proceso es bastante sencillo, se trata a modo de resumen de:
  1. Descargar el archivo .sav (SPSS) de la web y cargarlo en Alteryx con una herramienta Input.
  2. Elegir las variables que queremos mantener en el fichero (podríamos elegir todas) y crear un Identificador para cada entrevista con las herramientas Select y Record ID.
  3. Transponer todas las variables que corresponden a preguntas y respuestas de cada registro con la herramienta Transpose. Así ya no tenemos una columna para cada pregunta de la encuesta, sino una única columna con todas las preguntas y otra columna con todas las respuestas. Ahora por tanto en vez de tener una sola fila para cada entrevistado tenemos multitud de filas para cada entrevistado (1 fila para cada respuesta a cada pregunta).
  4. Como los nombres de los países vienen abreviados, he utilizado la herramienta Summarize para obtener un listado de todos los países en el fichero y con la herramienta Formula he creado un campo adicional que he adjuntado a cada registro con la herramienta Find Replace.
  5. Crear en excel un fichero que incluye cada código de respuesta y verbatim. Lo he cargado en Alteryx y lo he unido con el archivo original con la herramienta Join. De este modo ahora tenemos tanto el código como el texto de la respuesta asociado a cada registro.
  6. Crear otro fichero en excel con el texto de cada pregunta, Cargarlo en Alteryx y utilizar la herramienta Find Replace (también podríamos utilizar la herramienta Join) para adjuntar el texto de la pregunta a cada respuesta.
  7. Finalmente he renombrado las varibales de sexo y edad con otra herramienta Formula y he exportado la base de datos a un archivo .tde para abrirlo directamente en Tableau.

En definitiva, se trata de transformar el archivo original que tenía esta estructura:

Para que tenga esta otra:

 

Donde tenemos tantas filas para cada entrevistado como variables tenemos en la encuesta. De esta forma, aunque tengamos multitud de registros para cada individuo, se trata de filtrar en Tableau posteriormente por número de pregunta, de forma que en cada visualización que creemos analicemos una única pregunta, pero utilizando la misma medida para nuestros cálculos (el número de registros o la suma de una ponderación por ejemplo, que al filtrar por pregunta en la visualización dicha suma será la correcta).
Ahora ya podemos abrir nuestro archivo en Tableau, podemos también crear un campo calculado que utilice una de las ponderaciones de la encuesta para crear un porcentaje de respuesta calculado para cada país:

 

Utilizar a continuación el número o texto de la pregunta como filtro, e ir creando visualizaciones en distintas hojas, modificando dicho filtro para ir visualizando cada una de las preguntas de forma bastante sencilla. Aquí tenéis un ejemplo visualizando 3 de las preguntas del cuestionario, y añadiendo filtros de edad y género para darle mayor dinamismo al dashboard, de forma que podamos elegir los datos que queremos visualizar (haz click en la imagen para ver el dashboard interactivo):

Ya no hay excusas si quieres utilizar Tableau para analizar encuestas.

 

Herramientas de Alteryx para la preparación de datos II: Filter

Después de un largo tiempo sin hablar de Alteryx, hoy vamos a hablar rápidamente de otra de las herramientas más sencillas de utilizar: Filter (Filtrar)

 

La herramienta filtrar se encuentra, al igual que Sample en la pestaña de Preparación de datos (Preparation) y como su propio nombre indica nos permite filtrar nuestra base de datos de forma rápida y sencilla, dividiéndola en dos. Por un lado tendremos el output «T» o «True» (es decir, los registros de la base de datos que cumplen la condición que indiquemos) y el output «F» o «False» (aquellos registros que no cumplen dicha condición).
Al arrastrar la herramienta sobre la zona de trabajo y hacer click sobre ella, veremos las siguientes opciones de configuración:

 

La herramienta Filter, como se puede observar, tiene dos opciones básicas, Basic Filter (filtro básico) y Custom Filter (filtro personalizado).
La opción básica cuenta con 3 campos clave, en el primero de ellos seleccionaremos la cabecera o columna sobre la que queremos filtrar. En el segundo, a través del menú desplegable, definiremos el tipo de instrucción que queremos para el filtro (si es mayor que, menor que, igual a, no es nulo, contiene ciertos caracteres, etc.) y en el último de ellos estableceremos la condición concreta para filtrar.
Cabe destacar que dependiendo del tipo de columna de que se trate (numérica, cadena / texto o fecha) las opciones que tendremos en el menú desplegable serán diferentes. Así, si se trata de un campo numérico, las opciones que tendremos son igual, distinto, menor, menor o igual, mayor, mayor o igual, es nulo o no es nulo:
Si se trata de un campo de texto, las opciones que tendremos son igual, no es igual, antes de, después de, contiene, no contiene, es nulo, no es nulo, vacío o no es vacío:
Y si se trata de un campo con formato Fecha, obtendremos las mismas opciones que en el caso de un valor numérico, pero pudiendo definir la fecha a través de un calendario desplegable:
Si con los filtros básicos no tenemos suficiente, podemos entonces seleccionar el filtro personalizado, En el filtro personalizado tenemos dos zonas clave, la superior donde podemos seleccionar los distintos campos disponibles en la base de datos, ver las funciones disponibles o las expresiones que hayamos guardado previamente, y la zona inferior, donde definiremos la expresión que se utilizará para filtrar la base de datos.
Las funciones se encuentran además agrupadas por tipos, disponiendo así de distintas funciones según queramos crear un filtro condicional, un filtro de fecha, en base al fichero, financiero, matemático, espacial, de texto, etc. Pudiendo además hacer doble click en una expresión, de forma que aparecerá directamente en el apartado inferior de «Expresión», y pudiendo definir el campo a utilizar y la condición concreta. Así, por ejemplo, podemos definir un filtro mucho más especifico, y filtrar sólo los consumidores cuyas primeros 5 caracteres en el nombre sean «David».

De este modo, en el output «T» (Verdadero) de la herramienta Filter tendremos todos aquellos registros en los que los 5 primeros caracteres del campo Customer Name sean «David», es decir, aquellos en los que se cumple la condición establecida. Mientras que en el output «F» (Falso) tendremos el resto de registros que no cumplen dicha condición.En resumen, una herramienta muy sencilla de usar, pero que permite crear filtros avanzados rápidamente, con la ventaja además de contar con 2 outputs distintos con los que seguir trabajando a posteriori.

Herramientas de Alteryx para la preparación de datos I: Sample

Tras el primer post en el que hablé de Alteryx, llega el momento de  entrar,por fin, en materia. En este post voy a realizar un breve repaso a una de las herramientas que más utilizo a la hora de preparar, limpiar o depurar un fichero de datos: Sample.
Sample es una herramienta que uso especialmente con archivos Excel o csv que quiero utilizar posteriormente en Tableau. Normalmente, si se trata de un único archivo tal vez no merezca la pena, pero cuando has descargado varios ficheros Excel con datos o cada cierto tiempo se actualiza un fichero y todos estos archivos necesitan siempre la el mismo proceso de preparación, crear un workflow en Alteryx puede ahorrarte muchas horas de trabajo.

En un primer momento su nombre puede dar lugar a error, ya que no debemos confundir esta herramienta con Random % Sample, esta última efectivamente nos sirve para crear una muestra aleatoria, pero Sample tiene una función significativamente diferente. Lo que Sample permite es extraer una específica porción de registros de nuestro fichero de datos, lo que resulta muy útil para limpiar las primeras o últimas filas de archivos Excel que no contienen datos con los que queramos trabajar. He de decir también que es una herramienta que utilizo especialmente con archivos no inmensamente grandes y cuando necesito realizar el mismo proceso en varios archivos. Pero este tipo de operaciones es bastante habitual cuando descargo bases de datos en Excel de Naciones Unidas, el INE, Eusostat y organismos similares. Las distintas funciones del menú de configuración de esta herramienta son las siguientes:
  • First N Records: Devuelve los primeros N registros del fichero.
  • Last N Records: Devuelve los últimos N registros del fichero.
  • Skip 1st N Records: Devuelve todos los registros después de N, es decir, se «salta» los registros hasta N incluido.
  • 1 of every N Records: Devuelve 1 de cada N registros.
  • Random 1 in N Chance for each Record: Selecciona aleatoriamente 1 de cada N registros. Hay que tener en cuenta que Alteryx usa en este caso una metodología totalmente aleatoria, pero tal como se indica en la ayuda del programa, N es una aproximación. Por tanto podemos finalmente contar con un número distinto de la N indicada.
  • First N% of Records: Devuelve el N porcentaje de registros especificado. En este caso Alteryx primero calculará el número total de registros y luego devolverá el porcentaje especificado.

 

La opción de seleccionar un campo o campos en los que agrupar, Alteryx devolverá N registros para cada grupo seleccionado.
Personalmente, de todas estas opciones las que realmente son útiles para preparar y depurar ficheros son las 3 primeras, pero las demás no las he utilizado nunca. De este modo, partiendo de un fichero que tiene este formato (como decía, muy habitual en los ficheros de muchos organismos e instituciones):
Podemos utilizar la herramienta Sample para saltarnos las primeras 8 líneas (Skip 1st N records, y seleccionar 8 en la N) y tendremos este resultado:
Para un fichero puede no tener demasiado sentido, pero si tienes 5, 10 o 100 ficheros en los que tienes que realizar esta depuración es realmente útil. Además, no hay que olvidar que Alteryx no realiza cambios en el fichero inicial, sino que posteriormente podemos exportar nuestro resultado a otro archivo excel o un archivo TDE para trabajar directamente en Tableau, pero mantendremos nuestros ficheros originales sin cambio alguno.

Alteryx: el software para tratamiento de datos y análisis avanzado del que oirás hablar en el futuro

A partir de hoy y en la medida en la que el escaso tiempo libre me lo permita ampliaré la temática del blog para hablar, además de Tableau, de Alteryx.
Para quien no lo conozca, Alteryx es un software que permite de forma intuitiva y a través de una multitud de herramientas, el tratamiento, integración y análisis avanzado de datos. Aunque dispone además de algunas herramientas de visualización, los puntos fuertes de Alteryx se encuentran en otros temas, como el análisis predictivo, espacial y la preparación de datos.
Su mayor ventaja se encuentra en la sencillez de uso, arrastrando y soltando cada una de las herramientas que queramos utilizar y conectándolas de forma secuencial para el tratamiento de los datos, pudiendo además ver lo que hemos realizado en cada paso y todo ello sin modificar nuestra base de datos inicial, sino modificándola en el proceso y permitiendo exportarla posteriormente en multitud de formatos. Y todo ello con una fuerte integración con R pero sin la necesidad de aprender a programar en dicha plataforma y permitiendo operaciones complejas en pocos segundos.
Generar nuevos campos en nuestra base de datos con fórmulas, filtrar, crear muestras, identificar registros duplicados, uniones de varios ficheros, transponer, crear medias ponderadas, tratamiento de archivos espaciales, tablas de contingencia, regresiones lineales, logísticas, árboles de decisión, redes neuronales, ARIMAs, descarga de datos utilizando una API o la creación de macros totalmente personalizables (y sin picar código) son algunas de las herramientas de Alteryx.
Otra de las grandes ventajas es que permite exportar posteriormente los resultados directamente a un archivo .tde de Tableau para su visualización.
Podeis ver aquí un breve video de la empresa por si queréis haceros una mejor idea del funcionamiento del programa: