Etiqueta: Alteryx

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: