Tienda de tecnología online

Análisis de ventas

Jupter Notebook y Python

Descripción del proyecto

Analizar las ventas de una tienda de tecnología online durante el año 2019. Los datos están en formato .csv y divididos por meses. El objetivo es juntar todos los archivos en un mismo .csv y añadir, eliminar o modificar columnas para poder responder correctamente a las preguntas de negocio y crear visualizaciones sencillas que refuercen nuestras conclusiones. Todo esto utilizando Python en el entorno de desarrollo Jupyter Notebook.

Preguntas de negocio:
  1. ¿Cúal ha sido el mejor mes en cuanto a ventas? ¿Cuánto se ha ganado?
  2. ¿En qué ciudad ha habido más ventas? ¿Cuánto se ha ganado?
  3. ¿A qué hora debemos mostrar anuncios para maximizar la probabilidad de ventas?
  4. ¿Qué productos suelen venderse juntos?
  5. ¿Qué producto fue el más vendido? ¿Por qué?

Limpieza y preprocesamiento de los datos

Importar las librerías necesarias
  • Pandas ofrece unas estructuras muy poderosas y flexibles que facilitan la manipulación y tratamiento de datos.
  • os proporciona verificaciones detalladas de la identidad del sistema.
Fusionar los 12 archivos de ventas de cada mes en uno solo

Utilizamos un bucle for para concatenar cada uno de los archivos del directorio «Sales_Data» donde se encuentran los 12 meses y tras combinarlos extraemos todo en un archivo .csv que llamaremos «ventas_anuales»

A continuación leemos el archivo que acabamos de crear y lo convertimos en el DataFrame que nos servirá de base para el resto de procedimientos

Limpieza de datos

Empezaremos traduciendo el nombre de las columnas para que nos sea más fácil el resto de procedimientos

Localizar las celdas con valor NaN y eliminar los registros que contengan el valor NaN en todos sus campos

Hemos detectado que en algunos registros se está repitiendo el nombre de cada columna y por lo tanto son registros que debemos eliminar. 

Utilizaremos, por ejemplo, la columna «Fecha Pedido» para eliminar todos los registros que empiecen por «Or» («Order Date»)

Cambiamos el tipo de las columnas numéricas para poder realizar operaciones

Añadir columnas para facilitar el análisis:

Añadimos la columna «Mes» extrayendo los dos primeros valores de la columna «Fecha Pedido»

Añadimos la columna «Ventas» multiplicando los valores de la columna «Cantidad Pedido» por «Precio Pedido»

Para crear la columna «Ciudad» utilizaremos 2 funciones que separan la columna «Dirección Compra» por el delimitador «,» para extraer simplemente el nombre de la ciudad y el estado entre paréntesis

Para crear la columna «Hora Pedido» extraemos los últimos 5 caracteres de la columna «Fecha Pedido»

Ahora creamos la columna «Hora Redondeada» a partir de la columna «Hora Pedido» para saber a que hora se han realizado los pedidos obviando el minuto exacto

Análisis de los datos

1. ¿Cúal ha sido el mejor mes en cuanto a ventas? ¿Cuánto se ha ganado?

Creamos un nuevo DataFrame con el mes como índice y el sumatorio de las ventas como valor en orden descendente.

A continuación, con la librería matplotlib, creamos un gráfico de barras para visualizar los resultados

Por lo tanto, ya sabemos la respuesta a la primera pregunta de negocio:

2. ¿En qué ciudad ha habido más ventas? ¿Cuánto se ha ganado?

Creamos un nuevo DataFrame con las ciudades como índice y el sumatorio de las ventas como valor en orden descendente.

Creamos otro gráfico de barras para visualizar los resultados

Y ya sabemos también la respuesta a la segunda pregunta de negocio:

3. ¿A qué hora debemos mostrar anuncios para maximizar la probabilidad de ventas?

Creamos un nuevo DataFrame con las horas como índice y el sumatorio de las ventas como valor en orden descendente.

Creamos otro gráfico de barras para visualizar los resultados

Y por lo tanto ya sabemos la respuesta a la tercera pregunta de negocio:

4. ¿Qué productos suelen venderse juntos?

Creamos un DataFrame únicamente con los registros que tengan un «ID Pedido» repetido para eliminar los pedidos únicos que no nos interesan para responder esta pregunta de negocio

Agrupamos los productos por el «ID Pedido» y posteriormente los unimos en una nueva columna «Juntos» añadiendo una «,» como delimitador

Finalmente, utilizando las librerías «itertools» y «collections» calculamos cuál es la combinación más frecuente para obtener la cuarta respuesta de negocio.

5. ¿Qué producto fue el más vendido? ¿Por qué?

Creamos un nuevo DataFrame con los productos como índice y el sumatorio de la cantidad de ventas como valor en orden descendente.

Creamos un gráfico de barras para visualizar los resultados

Y ya sabemos por lo tanto cual es el producto más vendido:

Ahora necesitamos saber el porqué y para ello crearemos un nuevo DataFrame con los productos como índice y su precio de venta como valor en orden ascendente para comprobar cual es el más barato

Creamos un gráfico de líneas para visualizar los resultados

Y a continuación crearemos un gráfico con la cantidad de ventas visualizadas en barras y el precio de venta de cada producto visualizado como una línea para comprobar si existe algún tipo de relación entre ambos datos

Y efectivamente podemos comprobar que hay una clara relación inversamente proporcional entre el precio de venta de un determinado producto y su cantidad de ventas.

Por lo tanto podemos confirmar que el producto ‘AAA Battaries (4-pack)’ es el más vendido porque es también el más barato.

Volver al inicio

Seguir viendo proyectos de...

Análisis de datos

Ingenieria de datos

Ciencia de datos