Análisis de los 25 retailers más grandes de Estados Unidos
# Importar librerías aquí
import pandas as pd
import numpy as np
import seaborn as sn
import matplotlib.pyplot as plt
# Importar datos aquí
df = pd.read_csv('/work/largest_us_retailers_9b00dc73-a938-46cd-af17-fcb2bd67301f.csv')
df.sort_values('Sales',ascending=0);
# Existe dos datos en categorias que son los mismos Warehouse club y Warehouse clubs
df = df.replace(to_replace ="Warehouse Club",value ="Warehouse Clubs");
df
I. Preguntas del negocio
#Data Frame sin la compañía dominante Walmart
dfnw = df.drop(df.index[0])
#Calculo del promedio
mean_sales = dfnw['Sales'].mean()
#Figura
plt.figure(figsize=(8,8));
plt.xticks(rotation=90);
plt.title('Ventas por compañía')
ax = plt.subplot()
#diagrama de barras
sn.barplot(data=dfnw,y='Sales', x ='Company' )
ax.axhline(mean_sales,color='red',label='Promedio de ventas '+ str(round(mean_sales, 3)))
plt.legend();
#Figura
plt.figure(figsize=(8,8));
plt.xticks(rotation=90);
plt.title('Ventas por compañía')
ax = plt.subplot()
#diagrama de barras
sn.barplot(data=df,y='Sales', x ='Company' )
ax.axhline(mean_sales,color='red',label='Promedio de ventas excluyendo Walmart '+ str(round(mean_sales, 3)))
plt.legend();
plt.figure(figsize=(8,8));
sn.histplot(data=df,x='Sales' ,binrange = [0,700000],binwidth=50000)
plt.title("Distribución de ventas de las compañías")
plt.xlabel('Ventas')
plt.ylabel('frecuencia')
plt.figure(figsize=(8,8));
sn.histplot(data=df,x='Stores' ,binrange = [0,15000],binwidth=2000)
plt.title("Distribución de tiendas por compañías")
plt.xlabel('tiendas')
plt.ylabel('frecuencia')
dfs = df[df.Stores < 2000]
mean = dfs['Stores'].mean()
ax = plt.subplot()
ax.axvline(mean,color='red',label='Promedio de Tiendas de las primeras 13 compañias '+ str(round(mean, 0)) + ' tiendas')
plt.legend();
plt.figure(figsize=(10,8));
sn.scatterplot(data=df,x='Stores',y='Sales',hue='Company')
plt.title('Numero de tiendas fisicas vs Ventas')
plt.grid()
plt.figure(figsize=(8,5));
sn.boxplot(df['Sales'])
sales_range = df['Sales'].max()-df['Sales'].min()
print(sales_range)
plt.figure(figsize=(8,5));
sn.boxplot(dfnw['Sales'],color='red')
sales_range = dfnw['Sales'].max()-dfnw['Sales'].min()
print(sales_range)
dfstores = df.sort_values('Stores',ascending=0)
dfstores= dfstores[0:5]
dfsales = df.sort_values('Sales',ascending=0)
dfsales = dfsales[0:5]
fig, (ax,bx)= plt.subplots(2,1, figsize=(8,9))
sn.barplot(data=dfstores,x='Company',y='Stores',ax=ax)
sn.barplot(data=dfsales,x='Company',y='Sales',ax=bx)
fig, (ax,bx)= plt.subplots(2,1, figsize=(8,9));
sn.barplot(data=df,x='Sales',y='Category',ax=ax);
sn.barplot(data=dfnw,x='Sales',y='Category',ax=bx);
plt.figure(figsize=(8,9));
dfsast = df.sort_values('Sales/Avg. Store')
sn.barplot(data= dfsast,x='Sales/Avg. Store',y='Company');
fig, (ax,bx)= plt.subplots(1,2, figsize=(8,7))
dfnw['company type']=['online' if i else 'física' for i in dfnw.Stores.isna()]
df['company type']=['online' if i else 'física' for i in df.Stores.isna()]
sn.barplot(data= dfnw,x='company type',y='Sales',ax=ax);
sn.barplot(data= df,x='company type',y='Sales',ax=bx);
ax.set(title='Excluyendo datos de Walmart')
bx.set(title='Incluyendo datos de Walmart')
print('Las compañias que venden exclusivamente de manera online son')
print(df[df.Stores.isna()]['Company'])
plt.figure (figsize = (8,8))
plt.title('Crecimiento de compañias', fontsize = 15)
plt.xticks(rotation = 90)
sn.barplot (x= 'Company', y= 'Store Count Growth', data = df.sort_values('Store Count Growth'))
df['Store Count Growth'].mean()
plt.figure (figsize = (8,8))
plt.xticks(rotation = 45)
sn.barplot(data=df,y='Stores',x='Category')
plt.figure (figsize = (8,8))
plt.xticks(rotation = 45)
sn.histplot(data=df,x='Category')
dfg = df[df['Category'] == 'Grocery']
plt.figure(figsize=(8,8))
w = 100* dfg['Sales']/dfg['Sales'].sum()
patches, _ =plt.pie(dfg['Sales'], labels=dfg['Company'],)
labels = ['{0} - {1:1.2f} %'.format(i,j) for i,j in zip(dfg['Company'], w)]
plt.legend(patches, labels, loc='best', bbox_to_anchor=(0, 1))
plt.show()