Buscar la segunda fecha con Tableau Prep

Al realizar un análisis es habitual que se tenga que determinar la fecha en que se produce un segundo evento; por ejemplo, el momento en que un cliente hace una segunda compra y, por tanto, se convierte en cliente habitual, o cuando un conductor comete una segunda infracción de tráfico. Encontrar la fecha en que se produjo el primer evento es sencillo, ya que es simplemente la fecha mínima. Sin embargo, buscar la segunda es más complicado.

En este tutorial dividido en dos partes, configuraremos los datos de infracciones de tráfico y responderemos a las siguientes preguntas:

  1. ¿Cuántos días transcurrieron entre la primera y la segunda infracción de cada conductor?

  2. Compare los importes de las multas correspondientes a la primera y a la segunda infracción. ¿Existe alguna correlación entre ellos?

  3. En total, ¿qué conductor pagó más? ¿Quién pagó menos?

  4. ¿Cuántos conductores cometieron varios tipos de infracciones?

  5. ¿Cuál fue el importe de multa medio de los conductores que nunca habían asistido a un curso de seguridad vial?

En la primera fase, usaremos Tableau Prep Builder para reestructurar los datos y llevar a cabo nuestro análisis. En la segunda fase, Análisis con la segunda fecha en Tableau Desktop, pasaremos a llevar a cabo el análisis en Tableau Desktop.

El objetivo de este tutorial es presentar varios conceptos en el contexto de un escenario real y tratar varias opciones, sin establecer preceptivamente cuál es la mejor. Al final, debería tener una idea más clara de cómo afecta la estructura de datos a los cálculos y análisis, así como un mejor conocimiento de distintos aspectos de Tableau Prep y de los cálculos en Tableau Desktop.

Nota: Para llevar a cabo las tareas de este tutorial, deberá descargar los datos y tener Tableau Prep Builder (ya sea instalado o en su navegador). Para la segunda parte, también necesitará Tableau Desktop instalado.

El conjunto de datos es Traffic Violations.xlsx. Le recomendamos que lo guarde en la carpeta Mi Repositorio de Tableau Prep > Fuentes de datos.

Para instalar Tableau Prep Builder y Tableau Desktop antes de continuar con este tutorial, consulte Guía de implementación de Tableau Desktop y Tableau Prep(El enlace se abre en una ventana nueva). También puede descargar las versiones de prueba gratuitas de Tableau Prep(El enlace se abre en una ventana nueva) y Tableau Desktop(El enlace se abre en una ventana nueva).

Los datos

En este ejemplo, vamos a observar los datos de infracciones de tráfico. Cada infracción es una fila. Están registrados el conductor, la fecha, el tipo de infracción, si el conductor tuvo que ir asistir a un curso de seguridad vial y el importe de la multa.

Vista previa del conjunto de datos de infracciones de tráfico

Estructura de datos deseada

Los datos están estructurados actualmente de forma que cada infracción es una fila. Un conductor que haya cometido varias infracciones aparece en varias filas y no hay forma de saber cuál fue la primera ni la segunda.

Para analizar a nuestros infractores recurrentes, queremos conseguir un conjunto de datos en el que aparezcan por separado la fecha de la primera infracción y la de la segunda, además de la información relacionada con cada una de esas infracciones. Cada fila es un conductor.

Vista previa de la estructura de datos deseada

Restructuración de los datos

¿Cómo podemos conseguir eso con Tableau Prep? Crearemos los flujos por fases. En primer lugar, eliminaremos la fecha de la primera infracción y, en segundo, organizaremos el conjunto de datos final como deseemos. Asegúrese de haber descargado el archivo Excel (Traffic Violations.xlsx) para poder seguir.

Agregación inicial de la fecha de la 1.ª infracción

Primeros, conectaremos con el archivo Traffic Violations.xlsx.

  1. Abra Tableau Prep Builder.

  2. En la pantalla de inicio, haga clic en Conectar a datos.

  3. En el panel Conexiones, haga clic en Microsoft Excel. Vaya a la ubicación en que guardó el archivo Traffic Violations.xlsx y haga clic en Abrir.

  4. La hoja Infracciones debe ir automáticamente al panel de flujo.

  5. Para obtener más información sobre la conexión a los datos, consulte Conectarse a los datos.

Ahora, tenemos que identificar la fecha de la primera infracción de cada conductor. Para hacerlo, usaremos un paso de agregación y crearemos un conjunto de datos mini formado por ID de conductor y Fecha de infracción mínima.

Al usar un paso de agregación en Tableau Prep, todos los campos que deban definir lo que forma una fila son un Campo agrupado (en nuestro caso, ID de conductor). Todos los campos que se agreguen y presenten a nivel de los campos agrupados son un Campo agregado (en nuestro caso, Fecha de la infracción).

  1. En el panel de flujo, seleccione Infracciones, haga clic en el icono del signo más y elija Agregación.

  2. Arrastre ID de conductor a la zona de colocación Campos agrupados.

  3. Arrastre Fecha de la infracción a la zona Campos agregados. La agregación predeterminada es CNT (conteo). Haga clic en CNT y cambie la agregación a Valor mínimo.

    El panel de configuración del paso Agregado muestra el diseño correcto de los campos

    Así, se identifica la fecha más pequeña (la anterior), que es la de la primera infracción de cada conductor.

Para obtener más información sobre las agregaciones, consulte Limpiar datos y darles forma.

  1. En el panel de flujo, seleccione Agregación 1, haga clic en el icono más y elija Paso de limpieza para que podamos borrar la salida de la agregación.

  2. En el panel de perfil, haga doble clic en el nombre del campo Fecha de la infracción y cámbiela a Fecha de la 1.ª infracción.

En esta fase, el panel Flujo y Perfil deben tener este aspecto:

Visual del flujo con tres pasos

En el panel de perfil de este paso de limpieza, podemos ver que nuestros datos ahora están formados por 39 filas y solo 2 campos. Se pierden todos los campos que se hayan usado para realizar agrupaciones o agregaciones. Sin embargo, queremos mantener parte de la información original. Podemos añadir esos campos a la agrupación o agregación (pero si lo hacemos cambiaría el nivel de detalle o tendríamos que agregar campos) o volver a unir estos conjuntos de datos mini a los originales (básicamente, añadir una nueva columna a los datos originales para Fecha de la 1.ª infracción). Vamos a llevar a cabo la unión de columnas.

  1. En el panel de flujo, seleccione Infracciones, haga clic en el icono del signo más y elija Paso de limpieza.

    Asegúrese de pasar el cursor sobre el paso Infracciones directamente, no la línea entre él y el paso Agregación. Si el nuevo paso de limpieza se inserta entre los dos en lugar de bifurcarse, utilice la flecha Deshacer en la barra de herramientas e inténtelo de nuevo. El menú debe indicar Añadir, no Insertar.

En esta ramificación están todos los datos originales. Uniremos los resultados de la agregación a esta copia que contiene todos los datos. Al unirlos en ID de conductor, añadiremos la fecha mínima de nuestra agregación en los datos originales.

  1. Seleccione el paso Limpieza 2 y arrástrelo encima del paso Limpieza 1, luego suéltelo en Unir.

  2. La configuración de unión predeterminada debe ser la correcta: una unión interna en ID de conductor = ID de conductor.

  3. Para obtener más información sobre las uniones, consulte Unir columnas de datos.

Como es posible que algunos datos se dupliquen durante una unión de columnas, como los campos de la cláusula de unión de columnas, suele ser una buena idea borrar los campos superfluos después de realizar una unión de columnas.

  1. En el panel de flujo, seleccione Unión 1, haga clic en el icono del signo más y elija Paso de limpieza.

  2. En el panel de perfil, haga clic con el botón derecho o pulse Ctrl y haga clic (MacOS) en la tarjeta ID-1 del controlador y seleccione Quitar.

  3. Para cambiar el orden de los campos, arrastre la tarjeta Fecha de la 1.ª infracción entre ID de conductor y Fecha de la infracción a la zona en la que vea que aparece la línea negra.

En esta fase, el flujo debe tener este aspecto:

Visual del flujo con seis pasos

Si observamos la cuadrícula de datos que aparece abajo, podemos ver nuestro nuevo conjunto de datos combinados. Hemos añadido la fecha de infracción mínima, es decir, la primera, de cada conductor en cada fila del conjunto de datos.

Vista previa de los datos con el campo Fecha de la primera infracción

Segunda agregación de la fecha de la 2.ª infracción

También tenemos que determinar la fecha de la segunda infracción. Para hacerlo, hay que quitar todas las filas en las que la fecha de la infracción sea igual a la mínima, es decir, eliminar la primera fecha. Para saber la fecha mínima de las restantes, debemos usar otro paso de agregación en el que nos quedemos con la fecha de la segunda infracción, cuyo nombre cambiaremos para que sea más claro.

Nota: Como más adelante querremos usar en el flujo los datos tal y como están actualmente en Limpieza 3, añadiremos otro paso de limpieza para obtener la fecha de la segunda infracción. Esto dejará el estado actual de los datos de Limpieza 3 disponibles más adelante.

  1. En el panel de flujo, seleccione Limpieza 3, haga clic en el icono del signo más y elija Paso de limpieza.

  2. En la barra de herramientas del panel de perfil, elija Filtrar valores. Cree un filtro [Infraction Date] != [1st Infraction Date].

  3. Elimine el campo Fecha de la 1.ª infracción.

  4. En el panel de flujo, seleccione Limpieza 4, haga clic en el icono del signo más y seleccione Agregar.

  5. Arrastre ID de conductor a la zona de colocación Campos agrupados. Arrastre Fecha de la infracción a la zona de Campos agregados y cambie la agregación a Valor mínimo.

  6. En el panel de flujo, seleccione Agregación 2, haga clic en el icono del signo más y elija Paso de limpieza. Cambie el nombre de Fecha de la infracción a Fecha de la 2.ª infracción.

En esta fase, el flujo debe tener este aspecto:

Vista del flujo con nueve pasos

Ahora tenemos identificada la fecha de la segunda infracción de cada conductor. Para obtener el resto de información asociada a cada infracción (tipo, multa y curso de seguridad vial), tenemos que volver a unir todo el conjunto de datos.

  1. Seleccione Limpieza 5 y arrástrelo encima de Limpieza 3, luego suéltelo en Unir columnas.

  2. De nuevo, la configuración de unión predeterminada debe ser la correcta: una unión interna en ID de conductor = ID de conductor.

  3. En el panel de flujo, seleccione Unión 2, haga clic en el icono del signo más y elija Paso de limpieza. Elimine los campos ID del conductor 1 y Fecha de la 1.ª infracción porque ya no los necesitamos.

En esta fase, el flujo debe tener este aspecto:

Vista del flujo con once pasos

Crear conjuntos de datos completos para las primeras y las segundas infracciones

Antes de seguir, vamos a volver atrás y a pensar en todo lo que tenemos y la forma en que queremos unificar todo. El estado final que queremos es un conjunto de datos que se parezca a este, con una columna para ID de conductor y otras para la fecha, el tipo, el curso de seguridad vial y el importe de la multa de la primera y la segunda infracción.

Vista previa de la estructura de datos deseada

¿Cómo llegamos de allí a aquí?

En el paso Limpieza 3, contamos con nuestro conjunto de datos completo con una columna en la que se repite la fecha de la primera infracción de cada conductor.

Vista de cuadrícula de datos del paso Limpiar 3

Queremos eliminar todas las filas de un conductor que no hagan referencia a la primera infracción y crear un conjunto de datos formado únicamente por las primeras infracciones. Es decir, solo queremos conservar la información de un conductor determinado cuando Fecha de la 1.ª infracción = Fecha de la infracción. Una vez que hayamos filtrado para mantener únicamente la fila de la primera interacción, podemos eliminar el campo Fecha de la infracción y organizar los nombres de los campos.

De forma similar, después de la segunda agregación y unión de columnas, contamos con nuestro conjunto de datos completo con una columna para la fecha de la segunda infracción.

Vista de cuadrícula de datos del paso Limpiar 6

Podemos establecer un filtro similar de Fecha de la 2.ª infracción = Fecha de la infracción para mantener únicamente la fila en la que aparezca la información de la segunda infracción de cada conductor. De nuevo, también podemos eliminar la Fecha de la infracción, que ahora es superflua, y organizar los nombres de los campos.

Empezaremos con el conjunto de datos de la primera infracción.

  1. En el panel de flujo, seleccione Limpieza 3, haga clic en el icono del signo más y elija Paso de limpieza.

    Al igual que en el paso 10 anterior, queremos agregar una rama para el nuevo paso de limpieza, no insertarlo entre Limpieza 3 y Limpieza 4.

  2. Tras seleccionar este nuevo paso de Limpieza, en el panel de perfil, haga clic en Filtrar valores en la barra de herramientas. Cree un filtro [1st Infraction Date] = [Infraction Date].

  3. Elimine el campo Fecha de la infracción.

  4. Cambie el nombre de los campos Tipo de infracción, Curso sobre seguridad vial y Importe de la multa para que empiecen por "Primer".

  5. Haga doble clic en el nombre Limpieza 7 en el paso del panel de flujo y cambie el nombre a Primera solidez.

Ahora para el conjunto de datos de la segunda infracción.

  1. En el panel de flujo, seleccione Limpieza 6, después de realizar la última unión de columnas.

  2. Haga clic en Filtrar valores en la barra de herramientas. Cree un filtro [2nd Infraction Date] = [Infraction Date].

  3. Elimine el campo Fecha de la infracción.

  4. Cambie el nombre de los campos Tipo de infracción, Curso sobre seguridad vial y Importe de la multa para que empiecen por "Segundo".

  5. Haga doble clic en el nombre Limpieza 6 en el paso del panel de flujo y cambie el nombre a Segunda solidez.

En esta fase, el flujo debe tener este aspecto:

Vista del panel de flujo con 12 pasos

Crear el conjunto de datos completo

Ahora que tenemos estos dos conjuntos de datos organizados con información completa sobre las primeras y segundas infracciones por conductor, podemos volver a unirlos en ID de conductor y conseguir la estructura de datos deseada.

  1. Seleccione Segunda solidez y arrástrela encima de Primera solidez, luego suéltelo en Unir columnas.

  2. La cláusula de unión predeterminada debe ser la correcta: ID de conductor = ID de conductor.

  3. Como no queremos perder a los conductores que no hayan realizado una segunda infracción, tenemos que realizarles una unión de columnas izquierda. En la zona Tipo de unión de columnas, haga clic en la zona no sombreada del diagrama que se encuentra junto a Primera solidez y cámbielo a una unión izquierda.

  4. En el panel de flujo, seleccione Unión 3, haga clic en el icono del signo más y elija Paso de limpieza. Elimine el campo duplicado ID del conductor 1.

Los datos tienen el estado que queríamos, por lo que podemos crear una salida y llevar a cabo el análisis.

  1. En el panel de flujo, seleccione Limpieza 6, recién añadido, haga clic en el icono del signo más y seleccione Añadir salida.

  2. En el panel de salida, cambie el tipo de salida a .csv y haga clic en Examinar. Introduzca Infracciones del conductor como nombre y elija la ubicación que desee antes de hacer clic en Aceptar para guardar.

  3. Haga clic en el botón Ejecutar flujo de la parte inferior del panel para generar su salida. Haga clic en Listo en el cuadro de diálogo de estado para cerrarlo.

Consejo: para obtener más información sobre las salidas y la ejecución de un flujo, consulte Guardar y compartir el trabajo.

El flujo final debe tener este aspecto:

Vista final del flujo completo

Nota: puede descargar el archivo de flujo completado para comprobar su trabajo: Driver Infractions.tflx

Resumen

En la primera fase de este tutorial, nuestro objetivo era preparar el conjunto de datos original para llevar a cabo un análisis que abarcara las fechas de las primeras y las segundas infracciones. El proceso está formado por tres fases: 

Identificar las fechas de las primeras y las segundas infracciones:

  1. Cree una agregación en la que se mantenga ID de conductor y Fecha de infracción mínima. Únalo con el conjunto de datos original para crear un "conjunto de datos intermedio" en el que la fecha de la primera (mínima) infracción se repita en todas las filas.

  2. Para continuar, rellene todas las filas en las que la fecha de Fecha de la 1.ª infracción sea la misma que la de Fecha de la infracción. Desde ese conjunto de datos filtrado, cree una agregación en la que se mantenga ID de conductor y Fecha de infracción mínima. Únalo con el conjunto de datos intermedio del primer paso. Así, se identifica la fecha de la segunda infracción.

Crear conjunto de datos limpios para las primeras y las segundas infracciones:

  1. Vuelva atrás y cree una ramificación a partir del conjunto de datos intermedio para mantener solamente las filas en las que la fecha de Fecha de la 1.ª infracción sea la misma que la de Fecha de la infracción. Así, se crea un conjunto de datos solo para la primera infracción. Organícelo. Para ello, elimine todos los campos innecesarios y cambie el nombre de todos los campos deseados (excepto ID de conductor) para indicar que son de la primera infracción. Este es el conjunto de datos Primera solidez.

  2. Organice el conjunto de datos de la fecha de la segunda infracción. Borre los resultados de unión de columnas del nivel 2. Para hacerlo, aplique filtros para mantener solamente las filas en las que la fecha de Fecha de la 2.ª infracción sea la misma que la de Fecha de la infracción. Elimine todos los campos innecesarios y cambie el nombre de todos los campos deseados (excepto ID de conductor) para indicar que son de la segunda infracción. Este es el conjunto de datos Segunda solidez.

Combinar los datos de las primeras y las segundas infracciones en un solo conjunto de datos:

  1. Una los conjuntos de datos Primera solidez y Segunda solidez y asegúrese de mantener todos los registros de Primera solidez para no perder a ningún conductor que no tenga una segunda infracción.

A continuación, queremos observar cómo se pueden analizar estos datos en Tableau Desktop.

Pase a Análisis con la segunda fecha en Tableau Desktop.

Nota: damos las gracias especialmente a Ann Jackson por el tema Do Customers Spend More on Their First or Second Purchase?(El enlace se abre en una ventana nueva) (¿Los clientes gastan más en la primera o en la segunda compra?) de Workout Wednesday y a Andy Kriebel por el consejo de Tableau Prep Returning the First and Second Purchase Dates(El enlace se abre en una ventana nueva) (Indicar la primera y la segunda fecha de compra), que han servido de inspiración para este tutorial. Al hacer clic en estos enlaces, saldrá del sitio web de Tableau. Tableau no asume responsabilidad alguna por la exactitud de las páginas de las que se encargan los proveedores externos ni garantiza que estén actualizadas. Póngase en contacto con los propietarios si tiene alguna pregunta relacionada con su contenido.

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!