# A veces necesitamos instalar nuevas librerías en nuestros proyectos
!pip install openpyxl==3.0.10
# imports
import numpy as np
import pandas as pd
import sqlite3 as sql3
import matplotlib.pyplot as plt
import seaborn as sns
# Levanto los datos en 3 diferentes dataframes
#ARTÍCULO
con=sql3.connect('/work/data/articles.db')
sql_query =pd.read_sql_query('SELECT * FROM articles',con)
df_articles=pd.DataFrame(sql_query, columns=['article_id','article_name','unit_price'])
#Reemplazo los datos en las nuevas columnas
for i in range(len(my_df.index)):
#columna article_name
#Cargo el nombre del artículo en una variable
article=df_articles.loc[my_df.loc[i]['article_name']]['article_name']
#Se lo asigno a la columna y registro que corresponde
my_df.loc[i,'article_name']=article
#columna total amount
my_df.loc[i,'total_amount'] = my_df.loc[i,'quantity'] * df_articles.loc[my_df.loc[i]['article_id']]['unit_price']
# columna de seller_name
my_df.loc[i,'seller_name'] = df_sellers.loc[my_df.loc[i]['seller_name']]['seller_name']
print(my_df.head())
# RESOLUCIÓN ANALÍTICA
my_df2 = my_df.groupby('article_name').sum()
por_cant = my_df2.sort_values('quantity', ascending=False)
print(por_cant['quantity'].head(1))
# RESOLUCIÓN GRÁFICA
sns.set(style='white',palette='dark')
sns.displot(my_df,x='article_name',color='paleturquoise')
plt.title('Artículo más vendido')
plt.ylabel('Cantidad',fontsize=10)
plt.xlabel('Nombre artículo',fontsize=10)
plt.xticks(rotation=90,fontsize=8)
plt.show()
# RESOLUCIÓN ANALÍTICA
my_df3 = (my_df.groupby('article_name').sum()).sort_values('total_amount',ascending=False).head(5)
print(my_df3['total_amount'])
# RESOLUCIÓN GRÁFICA
plt.pie(my_df3['total_amount'],labels=my_df3.index,colors=['cornflowerblue','slateblue','turquoise','deepskyblue','skyblue','powderblue'])
plt.title('Artículos que más ingresos proporcionaron')
plt.show()
# RESOLUCIÓN ANALÍTICA
my_df4 = (my_df.groupby('seller_name').sum()).sort_values('total_amount',ascending=False)
print(my_df4[['quantity']+['total_amount']])
# RESOLUCIÓN GRÁFICA
plt.bar(my_df4.index,my_df4['total_amount'],color=['aquamarine','powderblue','paleturquoise','darkturquoise','mediumturquoise','mediumaquamarine'])
plt.xticks(rotation=60)
plt.title('Mejor vendedor del mes')
plt.ylabel('Monto total',fontsize=10)
plt.xlabel('Vendedor',fontsize=10)
plt.show()
# RESOLUCIÓN ANALÍTICA
my_df5 = (my_df.groupby('week').sum()).sort_values('total_amount',ascending=False)
print(my_df5)
# RESOLUCIÓN GRÁFICA
plt.bar(my_df5.index,my_df5['total_amount'],color=['darkturquoise','mediumturquoise','paleturquoise','powderblue'])
plt.title('Variaciones en ventas a lo largo del mes')
plt.ylabel('Monto total',fontsize=10)
plt.xlabel('Semana',fontsize=10)
plt.show()
# RESOLUCIÓN
my_df6=(my_df.groupby('country_name').sum()).sort_values('total_amount',ascending=False)
print(my_df6)
# RESOLUCIÓN GRÁFICA
plt.bar(my_df6.index,my_df6['total_amount'],color=['darkturquoise','mediumturquoise','paleturquoise','powderblue'])
plt.title('País que más vendió')
plt.ylabel('Monto total',fontsize=10)
plt.xlabel('País',fontsize=10)
plt.xticks(rotation=90)
plt.show()