Análisis de los 25 retailers más grandes de Estados Unidos
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv("/work/retailers.csv")
df.head()
Companyobject
Salesint64
4
Walgreen Boots
78924
0
Walmart US
658119
1
Kroger
115037
3
Home Depot
83976
2
Costco
90048
I. Preguntas del negocio
#Ordenamos los valores
df_sorted = df.sort_values('Sales', ascending=0)
#Quitamos la compañia dominante(Walmart)
ventas = df_sorted["Sales"][1:]
#obtenemos el promedio
media_ventas = np.median(ventas)
print(f'La media de las ventas sin la compañía dominante es de ${media_ventas} millones de dolares')
#Generamos el grafico
x = df_sorted['Company'][1:]
y = df_sorted['Sales'][1:]
plt.bar(x,y)
plt.grid()
plt.axhline(media_ventas, color ="r", linestyle = '--', linewidth = 2)
plt.title('Sales Retailers')
plt.xlabel('Company')
plt.ylabel('Sales')
plt.xticks(rotation='vertical')
plt.show()
La media de las ventas sin la compañía dominante es de $34694.0 millones de dolares
x = df_sorted['Sales']
plt.hist(x,(np.arange(start = 0, stop = 130000, step = 10000)))
plt.ylabel("Numero de empresas")
plt.xlabel('Sales')
plt.title("Histograma de las ventas de la mayoria de las companias")
plt.grid()
plt.show()
y = df['Stores']
ma = max(y)
print(ma) #Use max() para conocer cual es el valor maximo y poder hacer los bins
plt.hist(y,(np.arange(start = 0, stop = 15000, step = 1000)))
plt.ylabel("Numero de empresas")
plt.xlabel('Numero de tiendas')
plt.title("Histograma de las tiendas de las companias")
plt.grid()
plt.show()
14250.0
sns.scatterplot(data=df,x='Stores',y='Sales',hue='Company', style='Company')
plt.xlabel('Stores')
plt.ylabel('Sales')
plt.title("Grafica de la ventas vs cantidad de tiendas")
plt.show()
#Se hizo con numpy porque en el primer grafico la leyenda tapa informacion
x = df['Stores']
y = df['Sales']
plt.scatter(x, y)
plt.xlabel('Stores')
plt.ylabel('Sales')
plt.title("Grafica de la ventas vs cantidad de tiendas")
plt.show()
menor = min(df['Sales'])
mayor = max(df['Sales'])
rango = mayor - menor
print(menor)
print(mayor)
print(rango)
16592
658119
641527
top_5_tiendas = df.sort_values('Stores', ascending=0).head(5)
top_5_ventas = df.sort_values('Sales', ascending=0).head(5)
compa_t = set(top_5_tiendas['Company'])
compa_v = set(top_5_ventas['Company'])
inter = compa_t.intersection(compa_v)
print(inter)
Company Sales Stores Sales/Avg. Store Store Count Growth \
20 Dollar Tree 21464 14250.0 1.563919 0.079627
19 Dollar General 22234 13350.0 1.768885 0.132412
5 CVS incl. Target 77792 9813.0 8.825959 0.255662
4 Walgreen Boots 78924 8002.0 9.810927 -0.010511
0 Walmart US 658119 4574.0 65.649725 0.012843
Category
20 Dollar Stores
19 Dollar Stores
5 Drug Stores
4 Drug Stores
0 Supercenters
Company Sales Stores Sales/Avg. Store Store Count Growth \
0 Walmart US 658119 4574.0 65.649725 0.012843
1 Kroger 115037 3931.0 30.031850 0.053887
2 Costco 90048 495.0 187.795620 0.066810
3 Home Depot 83976 1965.0 42.735878 0.000000
4 Walgreen Boots 78924 8002.0 9.810927 -0.010511
Category
0 Supercenters
1 Grocery
2 Warehouse Club
3 Home Improvement
4 Drug Stores
{'Walmart US', 'Walgreen Boots'}
sns.barplot(x='Category', y='Sales', data=df)
plt.xticks(rotation='vertical')
plt.title("Grafica de ventas vs categoria de compania")
plt.show()
sns.barplot(x='Company', y='Sales/Avg. Store',data=df)
plt.xticks(rotation='vertical')
plt.title("Grafica de las companias que mas venden en relacion a las tiendas que tienen")
plt.show
online = df[df.isnull().any(True)]
tot_on = online['Sales'].sum()
print(f'El total en ventas totalmente online es: {tot_on} Millones de dolares')
El total en ventas totalmente online es: 109351 Millones de dolares
tiendas_fisicas = df.dropna()
fig, ax = plt.subplots()
ax.bar(tiendas_fisicas.Company,tiendas_fisicas.Sales)
ax.bar(online.Company,online.Sales)
plt.axhline(media_ventas, color ="r", linestyle = '--', linewidth = 2)
plt.xticks(rotation='vertical')
plt.title("Grafica comparativa de las companias que venden Online y en tiendas fisicas ")
plt.show()
df_sor = df.sort_values('Store Count Growth', ascending=0)
sns.barplot(x='Company', y='Store Count Growth', data=df_sor)
plt.xticks(rotation='vertical')
plt.title("Grafica de las companias con mayor crecimiento")
plt.show
sns.barplot(x='Category', y='Store Count Growth', data=df)
plt.xticks(rotation='vertical')
plt.title("Grafica de las categorias de companias con mas crecimiento")
plt.show()