Como hacer Ciencia de Datos (Data Science) a los productos de una Tienda de Postres – Parte 16

Demo

En la parte anterior llamada Como hacer Análisis a los productos de una Tienda de Postres mediante Data Science – Parte 15 llevamos acabo el análisis de todas las ventas realizadas durante la noche (6PM – 23PM), pertenecientes a la categoría bebida y con ello terminamos de analizar todos los datos que especifique o mencioné en la Parte 2 de este tutorial y en esta Parte 16 vamos a crear un resumen o reporte de todos los datos obtenidos. 

Partes

Antes de continuar con este Post te invito a escuchar el Podcast: “Dominio del trabajo con Varios Lenguajes de Programación”:

Spotify SoundCloud

Bien ahora continuemos con el Post: Como hacer Análisis a los productos de una Tienda de Postres mediante Data Science – Parte 16.

Reportes

Como ya tenemos los datos de las ventas realizadas podemos generar un reporte para entregárselo a las personas encargadas de analizar este reporte y llevar acabo la o las tomas de decisiones correspondientes.

Un reporte puede ser creado de diferentes maneras y formas, esto dependerá de la organización para la cual  trabajas, estas te piden un reporte con datos y forma determinada, yo haré un reporte para cada grupo de ventas con los datos mas resaltantes, algo parecido a una infografía.

Datos Ventas Generales

Este es el primer grupo de datos que analizamos, ahora crearemos sus respectivos reportes para cada uno.

Ventas Generales por la Mañana (9AM – 12PM)

Para todos los reportes voy a trabajar solamente con la hora de la venta y quitaré la fecha, asimismo defino nuevos nombres de columnas, ya que los nombres de columnas anteriores, no tenían buen aspecto.

# Formateo para extraer solo la hora de la venta
datos['created_at'] = pd.to_datetime(datos['created_at'])
ff = datos['created_at'].dt.strftime('%H:%M:%S %p') # Formato 00:00:00 AM/PM 
datos['created_at'] = ff  

# Selecciono las ventas del rango horario de la mañana
horai = '09:00:00'
horaf = '12:00:00'

filtrar = (ff >= horai) & (ff <= horaf)
resultado = datos.loc[filtrar]


# Cambio el nombre de las columnas para mejorar su aspecto 
resultado.columns = ['ID', 'Producto', 'Cliente', 'DNI', 'Fecha de Nacimiento', 'Precio', 'Imagen', 'Hora', 'Actualizado'] 

resultado

Presiono el  botón Run para ejecutar el código y obtengo la nueva tabla con los nuevos nombres de columna y la anterior columna llamada created_at que mostraba la fecha y hora, la cambie por Hora en donde solo muestro la hora.

Ahora genero un gráfico con los Productos y las Horas, asimismo le añado puntos azules para identificar mejor los datos.

import matplotlib.pyplot as plot
import numpy as np

# Tamaño del gráfico 
plot.rcParams["figure.figsize"] = 20,11

# Defino los campos del gráfico 
horas = resultado['Hora']
posisicion_y = np.arange(len(horas))
productos = resultado['Producto']

# Formateo los elementos del gráfico 
plot.plot(posisicion_y, productos, alpha=0.5)
plot.xticks(posisicion_y, horas)
plot.xticks(fontsize=16)
plot.yticks(fontsize=16)

# Defino el título y las etiquetas (labels) del gráfico 
plot.title('Día: 16-09-2019', fontsize=24, pad=25)
plot.xlabel('Hora', fontsize=20, labelpad=25)
plot.ylabel('Producto', fontsize=20, labelpad=25)

# Imprimo el gráfico 
plot.scatter(posisicion_y, productos) # Añado puntos azules al gráfico
plot.show()

Presiono el botón Run para ejecutar el código y obtengo mi nuevo Gráfico.

Este gráfico se puede guardar como una imagen, solo le das clic con el botón derecho del mouse y selecciona la opción Guardar imagen como…

Tanto la tabla como el gráfico lo añadiré a mi reporte y entonces muestro un reporte con los datos más resaltantes al lado izquierdo, al lado derecho la gráfica resultante del análisis que hice de los datos y debajo una tabla con todos los datos obtenidos de las Ventas Generales por la Mañana (9AM – 12PM).

Con esto tengo el reporte del primer grupo de Ventas Generales por la Mañana (9AM – 12PM).

Ventas Generales por la Tarde (12PM – 6PM)

En todos los reportes voy a trabajar solamente con la hora de la venta y quitaré la fecha, asimismo defino nuevos nombres de columnas, ya que los nombres de columnas anteriores, no tenían buen aspecto.

# Formateo para extraer solo la hora de la venta
datos['created_at'] = pd.to_datetime(datos['created_at'])
ff = datos['created_at'].dt.strftime('%H:%M:%S %p') # Formato 00:00:00 AM/PM 
datos['created_at'] = ff  

# Selecciono las ventas del rango horario de la tarde 
horai = '12:00:00'
horaf = '18:00:00'

filtrar = (ff >= horai) & (ff <= horaf)
resultado = datos.loc[filtrar]


# Cambio el nombre de las columnas para mejorar su aspecto 
resultado.columns = ['ID', 'Producto', 'Cliente', 'DNI', 'Fecha de Nacimiento', 'Precio', 'Imagen', 'Hora', 'Actualizado'] 

resultado

Ahora presiono el  botón Run para ejecutar el código y obtengo la nueva tabla con los nuevos nombres de columna y la anterior columna llamada created_at que mostraba la fecha y hora, la cambie por Hora en donde solo muestro la hora.

Luego creo un gráfico con los Productos y las Horas, asimismo le añado puntos azules para identificar mejor los datos.

import matplotlib.pyplot as plot
import numpy as np

# Tamaño del gráfico 
plot.rcParams["figure.figsize"] = 20,11

# Defino los campos del gráfico 
horas = resultado['Hora']
posisicion_y = np.arange(len(horas))
productos = resultado['Producto']

# Formateo los elementos del gráfico 
plot.plot(posisicion_y, productos, alpha=0.5)
plot.xticks(posisicion_y, horas)
plot.xticks(fontsize=16)
plot.yticks(fontsize=16)

# Defino el título y las etiquetas (labels) del gráfico 
plot.title('Día: 16-09-2019', fontsize=24, pad=25)
plot.xlabel('Hora', fontsize=20, labelpad=25)
plot.ylabel('Producto', fontsize=20, labelpad=25)

# Imprimo el gráfico 
plot.scatter(posisicion_y, productos) # Añado puntos azules al gráfico
plot.show()

Entonces presiono el botón Run para ejecutar el código y obtengo mi nuevo Gráfico.

El gráfico se puede guardar como una imagen, solo le das clic con el botón derecho del mouse y selecciona la opción Guardar imagen como…

Este reporte se ve muy agradable para los socios o directivos de la tienda de Postres, han habido bastantes ventas a diferencia del turno anterior.

La tabla y el gráfico que he generado los añado a mi reporte y entonces muestro un reporte con los datos más resaltantes al lado izquierdo, al lado derecho la gráfica resultante del análisis que hice de los datos y debajo una tabla con todos los datos obtenidos de las Ventas Generales por la Mañana (12PM – 6PM).

Así pues obtengo el reporte del segundo grupo de Ventas Generales por la Tarde (12PM – 6PM).

Ventas Generales por la Noche (6PM – 11PM)

En este reporte también voy a trabajar solamente con la hora de la venta y quitaré la fecha, asimismo defino nuevos nombres de columnas, ya que los nombres de columnas anteriores, no tenían buen aspecto.

# Formateo para extraer solo la hora de la venta
datos['created_at'] = pd.to_datetime(datos['created_at'])
ff = datos['created_at'].dt.strftime('%H:%M:%S %p') # Formato 00:00:00 AM/PM 
datos['created_at'] = ff  

# Selecciono las ventas del rango horario de la noche 
horai = '18:00:00'
horaf = '23:00:00'

filtrar = (ff >= horai) & (ff <= horaf)
resultado = datos.loc[filtrar]


# Cambio el nombre de las columnas para mejorar su aspecto 
resultado.columns = ['ID', 'Producto', 'Cliente', 'DNI', 'Fecha de Nacimiento', 'Precio', 'Imagen', 'Hora', 'Actualizado'] 

resultado

Paso seguido presiono el  botón Run para ejecutar el código y obtengo la nueva tabla con los nuevos nombres de columna y la anterior columna llamada created_at que mostraba la fecha y hora, la cambie por Hora en donde solo muestro la hora.

Y ahora creo un gráfico con los Productos y las Horas, asimismo le añado puntos azules para identificar mejor los datos.

import matplotlib.pyplot as plot
import numpy as np

# Tamaño del gráfico 
plot.rcParams["figure.figsize"] = 20,11

# Defino los campos del gráfico 
horas = resultado['Hora']
posisicion_y = np.arange(len(horas))
productos = resultado['Producto']

# Formateo los elementos del gráfico 
plot.plot(posisicion_y, productos, alpha=0.5)
plot.xticks(posisicion_y, horas)
plot.xticks(fontsize=16)
plot.yticks(fontsize=16)

# Defino el título y las etiquetas (labels) del gráfico 
plot.title('Día: 16-09-2019', fontsize=24, pad=25)
plot.xlabel('Hora', fontsize=20, labelpad=25)
plot.ylabel('Producto', fontsize=20, labelpad=25)

# Imprimo el gráfico 
plot.scatter(posisicion_y, productos) # Añado puntos azules al gráfico
plot.show()

Ahora presiono el botón Run para ejecutar el código y obtengo mi nuevo Gráfico.

Este gráfico se puede guardar como una imagen, solo le das clic con el botón derecho del mouse y selecciona la opción Guardar imagen como…

Tanto la tabla como el gráfico que he generado los añado a mi reporte y entonces muestro un reporte con los datos más resaltantes al lado izquierdo, al lado derecho la gráfica resultante del análisis que hice de los datos y debajo una tabla con todos los datos obtenidos de las Ventas Generales por la Mañana (6PM – 11PM).

Con esto tengo el reporte del tercer grupo de Ventas Generales por la Noche (6PM – 11PM).

Ten Paciencia, lo que quiero es que entiendas todo el proceso de como funciona la Ciencia de Datos (Data Science) en una caso similar a la realidad.

Nota (s)

  • En la siguiente parte, continuaremos con el siguiente reporte del segundo grupo de ventas.
  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.