[2021] Limpie, analice y visualice datos de encuestas en Python {DH}


un tutorial con pandas, matplotlibY seaborn para generar información digerible a partir de datos sucios

30 de marzo de 2019·10 minutos de lectura

Si está trabajando con datos en un inicio de D2C, es muy probable que se le pida que mire los datos de la encuesta al menos una vez. Y dado que SurveyMonkey es una de las plataformas de encuestas más populares, es muy probable que se trate de datos de SurveyMonkey.

La forma en que SurveyMonkey exporta datos no es necesariamente ryolisto para el análisis en este momento, pero está bastante cerca. Aquí hay algunos ejemplos de preguntas que quizás desee hacer sobre los datos de su encuesta y cómo extraer rápidamente esas respuestas. Incluso escribiremos algunas funciones para facilitarnos la vida a la hora de planificar futuras preguntas.

usaremos pandas, matplotlibY seaborn para entender nuestros datos. Usé Mockaroo para generar estos datos; Específicamente para los campos de preguntas de la encuesta, utilicé «Lista personalizada» e ingresé los campos apropiados. Puedes obtener el mismo efecto usando random.choice en el cual random módulo, pero me resultó más fácil dejar que Mockaroo creara todo para mí. Luego modifiqué los datos en Excel para reflejar la estructura de una exportación de SurveyMonkey.

oh chico… vamos

Su primera reacción a esto podría ser, “Ugh. Es horrible». Quiero decir, los nombres de las columnas no se leyeron correctamente, hay muchos NaN, en lugar de representaciones numéricas como 0/1 o 1/2/3/4/5, tenemos las respuestas de texto reales en cada celda… ¿Y deberíamos leer esto con un índice múltiple?

Pero no te preocupes, no es tan malo como crees. E ignoraremos MultiIndexes en esta publicación. (De todos modos, a nadie le gusta trabajar con ellos). El equipo necesita este conocimiento lo antes posible, por lo que vamos a encontrar algunas soluciones.

Primera tarea: se nos pidió que averigüáramos cómo diferían las respuestas a estas preguntas según el grupo de edad. pero age Es solo una edad, ¡no tenemos una columna para grupos de edad! Bueno, por suerte para nosotros, podemos definir fácilmente una función para crear una.

¡Pero si intentamos ejecutarlo así, obtenemos un error! Esto se debe a que tenemos la primera fila y su valor para la edad es la palabra «edad» en lugar de un número. Dado que el primer paso es convertir cada edad en una inteso fallará.

Necesitamos eliminar esta fila del DataFrame, pero será útil más adelante cuando cambiemos el nombre de las columnas, así que almacenémosla como una variable separada.

Notarás que desde que lo quitaste headers, ahora hemos perdido algo de información mirando solo los datos de la encuesta. Idealmente, tiene una lista de las preguntas y sus opciones que se hicieron en la encuesta proporcionada por quien desea el análisis. De lo contrario, debe tener una forma separada de hacer referencia a esta información en un documento o nota que pueda ver mientras trabaja.

Bien, ahora apliquemos esos age_group función para obtener nuestro age_group Pilar.

Excelente. A continuación, subdividimos los datos para centrarnos solo en la primera pregunta. ¿Cómo difieren las respuestas a esta primera pregunta según el grupo de edad?

Excelente. Ahora tenemos las respuestas en una variable. Pero cuando graficamos estos datos, no se ve muy bien debido a las columnas mal nombradas. Escribamos una función rápida para simplificar el cambio de nombre de la columna:

Recuerdo headers ¿del pasado? Podemos usarlo para crear el nuestro. new_names_list para cambiar el nombre.

Ya es una matriz, por lo que podemos pasarla directamente o podemos cambiarle el nombre primero para facilitar la lectura.

¿No es mucho más agradable de ver? No te preocupes, estamos casi en el punto en el que estamos obteniendo algunas ideas.

reconocer cómo groupby y otras funciones de agregación ignoran automáticamente los NaN. Esto nos hace la vida mucho más fácil.

Supongamos que tampoco nos importa mirar a los clientes menores de 30 años en este momento, por lo que solo estamos rastreando los otros grupos de edad.

Está bien, todo eso está muy bien, pero el grupo de mayores de 60 años tiene más personas que los otros grupos, por lo que es difícil hacer una comparación justa. ¿qué hacemos? Podemos trazar cada grupo de edad en un gráfico separado y luego comparar las distribuciones.

Pero espera, podrías pensar. «Realmente no quiero escribir el código para 4 parcelas diferentes».

¡Por supuesto que no! ¿Quién tiene tiempo para esto? Escribamos otra función que haga esto por nosotros.

Creo que fue Jenny Bryan quien primero me hizo saber lo siguiente en su maravillosa charla «Code Smells and Feels»:

Si está copiando y pegando código y solo cambiando algunos valores, realmente debería estar escribiendo una función.

Esta ha sido una gran guía para mí para decidir cuándo vale la pena escribir una función para algo y cuándo no. Una regla general que me gusta usar es que si quiero copiar y pegar más de tres veces, escribo una función.

Este enfoque también tiene otras ventajas además de la conveniencia, tales como:

  • reduce la probabilidad de errores (al copiar y pegar, es fácil olvidarse de incluir un…



[2021] Limpie, analice y visualice datos de encuestas en Python {DH}

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada.