#Importar librerías necesarias
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Cargar datos de clasificación de productos desde dataset creado previamente en Azure Machine Learning
# azureml-core of version 1.0.72 or higher is required
from azureml.core import Workspace, Dataset
subscription_id = '1d86fb2e-0dc9-4639-b35b-fc2dfac4e193'
resource_group = 'Recurso1'
workspace_name = 'ML_fco'
workspace = Workspace(subscription_id, resource_group, workspace_name)
dataset2= Dataset.get_by_name(workspace, name='DT_PRODUCTOS')
productos = dataset2.to_pandas_dataframe()
#Seleccionar solo los productos que pertenezcan a la categoría jugos
base_de_datos_productos_categoria_jugos = productos[productos['PR_CATEGORIA'].isin(['JUGOS Y NECTARES'])]
lista_productos_jugos = base_de_datos_productos_categoria_jugos[['ID_PRODUCTO']]
# Cargar datos de venta desde dataset creado previamente en Azure Machine Learning
# azureml-core of version 1.0.72 or higher is required
# azureml-dataprep[pandas] of version 1.1.34 or higher is required
from azureml.core import Workspace, Dataset
subscription_id = '1d86fb2e-0dc9-4639-b35b-fc2dfac4e193'
resource_group = 'Recurso1'
workspace_name = 'ML_fco'
workspace = Workspace(subscription_id, resource_group, workspace_name)
dataset = Dataset.get_by_name(workspace, name='VTASO2019')
vta = dataset.to_pandas_dataframe()
#Obtener un dataframe que contenga solo registros pertenecientes a productos de la categoría Jugos
venta_jugos = vta[vta['PRODUCTO'].isin(lista_productos_jugos['ID_PRODUCTO'])]
venta_jugos.head(4)
#Dividiendo el archivo de ventas en 2 listas de 28 y 29 productos respectivamente
subconjunto_venta_lista1 = venta_jugos[venta_jugos['PRODUCTO'].isin(venta_jugos.PRODUCTO.unique()[0:27])]
subconjunto_venta_lista2 = venta_jugos[venta_jugos['PRODUCTO'].isin(venta_jugos.PRODUCTO.unique()[28:55])]
#Graficando boxplots (venta diaria de productos de la categoría jugos)
plt.figure(figsize=(20,5))
sns.boxplot(x="PRODUCTO", y="VENTA", data=subconjunto_venta_lista1)
plt.figure(figsize=(20,5))
sns.boxplot(x="PRODUCTO", y="VENTA", data=subconjunto_venta_lista2)
#Obteniendo la venta semanal de jugos
venta_semanal = venta_jugos.groupby(['PRODUCTO','SEMANA']).sum().reset_index()
subconjunto_venta_semanal_lista1 = venta_semanal[venta_semanal['PRODUCTO'].isin(venta_semanal.PRODUCTO.unique()[0:27])]
subconjunto_venta_semanal_lista2 = venta_semanal[venta_semanal['PRODUCTO'].isin(venta_semanal.PRODUCTO.unique()[28:55])]
#Graficando ahora boxplots paraventa semanal de productos de la categoría jugos
#Se observa una menor dispersión al agrupar la venta semanalmente
#Se realizará entonces el cálculo de correlación tomando la suma de la venta semanal y el promedio semanal de temperatura
plt.figure(figsize=(20,5))
sns.boxplot(x="PRODUCTO", y="VENTA", data=subconjunto_venta_semanal_lista1)
plt.figure(figsize=(20,5))
sns.boxplot(x="PRODUCTO", y="VENTA", data=subconjunto_venta_semanal_lista2)
# Se requiere azureml-core, versión 1.0.72 o posterior
# Se requiere azureml-dataprep[pandas] (versión 1.1.34 u otra posterior).
from azureml.core import Workspace, Dataset
subscription_id = '1d86fb2e-0dc9-4639-b35b-fc2dfac4e193'
resource_group = 'Recurso1'
workspace_name = 'ML_fco'
workspace = Workspace(subscription_id, resource_group, workspace_name)
dataset = Dataset.get_by_name(workspace, name='TEMPERATURAS2019')
temperaturas_ini = dataset.to_pandas_dataframe()
temperaturas = temperaturas_ini[['FECHA', 'TEMPERATURA MAXIMA']]
temperaturas.head(3)
#Agregar columna SEMANA a partir de la Fecha
temperaturas.insert(2, "SEMANA", temperaturas['FECHA'].dt.week)
#Obtener temperatura promedio semanal
temp_semanal = temperaturas.groupby(['SEMANA']).mean().reset_index()
#Renombrar columna
temp_semanal.rename(columns = {'TEMPERATURA MAXIMA':'TEMP_MAX'}, inplace = True)
#Unir venta y temperatura mediante Join
vta_y_temp_semanal = pd.concat([venta_semanal, temp_semanal], axis=1)
productos_lista = vta_y_temp_semanal.PRODUCTO.unique()
cant_productos = len(productos_lista)
vtaprod1 = vta_y_temp_semanal[vta_y_temp_semanal['PRODUCTO'].isin(['305712'])]
vtaprod1.corr()
print('Producto' + ' ' + 'Correlación Entre Venta y Temperatura Semanal')
for i in range( cant_productos ):
vtaprod4 = vta_y_temp_semanal[vta_y_temp_semanal['PRODUCTO'].isin([productos_lista[i]])]
valor_correlacion = vtaprod4['VENTA'].corr(vtaprod4['TEMP_MAX'])
if valor_correlacion > 0.6:
print(productos_lista[i] + ' ' + str(valor_correlacion) )