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 matplotlib.pyplot as plt
import seaborn as sns
# Importar datos aquí
df=pd.read_csv('/work/retailers.csv')
df['Stores']= df['Stores'].replace(np.nan, 0)
df['Category']= df['Category'].replace('Warehouse Clubs', 'Warehouse Club')
df
#df['DataFrame Column'] = df['DataFrame Column'].replace(np.nan, 0)
#df['Estado Lead'] = df['Estado Lead'].apply(lambda x: 'Interesado' if x == ('interesado') else x )
Companyobject
Walmart US4%
Kroger4%
23 others92%
Salesint64
16592 - 658119
0
Walmart US
658119
1
Kroger
115037
2
Costco
90048
3
Home Depot
83976
4
Walgreen Boots
78924
5
CVS incl. Target
77792
6
Amazon
71687
7
Target
71208
8
Lowe's
60311
9
Albertsons
56829
I. Preguntas del negocio
df_p1=df.loc[1::]
promedio_ventas=df_p1['Sales'].mean()
print(('El promedio de ventas excluyendo la compañía dominante es {}').format(round(promedio_ventas, 2)))
promedio_walmart= df['Sales'].loc[0]
print('Evidentemente existe una diferencia muy amplia entre Walmart y sus competidores. Se compara un ' + str(round(promedio_ventas, 2)) + ' vs '+str(round(promedio_walmart,2)))
df_grafica1=df_p1['Sales'].groupby(by= df_p1['Company']).mean().sort_values(ascending=False)
df_grafica1.plot(kind='bar', figsize=(18,5), color='b')
El promedio de ventas excluyendo la compañía dominante es 46602.42
Evidentemente existe una diferencia muy amplia entre Walmart y sus competidores. se compara un 46602.42 vs 658119
df_p2=df.loc[1::]
mediana_ventas=df_p2['Sales'].median()
print(('La mitad de las compañías generaron al menos {} ').format(mediana_ventas))
df_grafica2=df_p2['Sales'].groupby(by= df_p2['Company']).median().sort_values(ascending=False)
df_grafica2.plot(kind='bar', figsize=(18,5), color='b')
plt.axhline(y=mediana_ventas, color='r')
print(('Se evidencia que desde Publix en adelante( {} ) está la mayoría en cuanto a ventas, de nuevo se excluyó Walmart').format(mediana_ventas))
La mitad de las compañías generaron al menos 34694.0
Se evidencia que desde Publix en adelante( 34694.0 ) está la mayoría en cuanto a ventas, de nuevo se excluyó Walmart
df_p3=df.loc[1::]
mediana_tiendas=df_p3['Stores'].median()
print(('La mitad de las compañías generaron al menos {} ').format(mediana_tiendas))
df_grafica3=df_p3['Stores'].groupby(by= df_p3['Company']).median().sort_values(ascending=False)
df_grafica3.plot(kind='bar', figsize=(18,5), color='g')
plt.axhline(y=mediana_tiendas, color='b')
print(('Se evidencia que desde Target en adelante({}) está la mayoría en cuanto a ventas, de nuevo se excluyó Walmart').format(mediana_tiendas))
La mitad de las compañías generaron al menos 1580.5
Se evidencia que desde Target en adelante(1580.5) está la mayoría en cuanto a ventas, de nuevo se excluyó Walmart
corr = df.corr()
mask = np.triu(corr)
fig, ax = plt.subplots(figsize=(7, 5))
sns.heatmap(corr,mask=mask, fmt='.1f',vmax=.3, linewidths=.5,square=True, cbar_kws = {'shrink':0.5},annot=True, center=0)
print('no hay co relación entre el número de tiendas vs las ventas')
no hay co relación entre el número de tiendas vs las ventas
minimo_ventas=df['Sales'].min()
maximo_ventas=df['Sales'].max()
print('El rango de ventas esta entre ' + str(minimo_ventas) + ' y ' + str(maximo_ventas))
El rango de ventas esta entre 16592 y 658119
#df['group'].plot(kind='bar', color=['r', 'g', 'b', 'r', 'g', 'b', 'r'])
df_grafica6=df['Stores'].groupby(by= df['Company']).sum().sort_values(ascending=False).head(5)
df_top5=df['Company'].head(5)
top_tiendas=df_grafica6.index.to_list()
top_ventas=df_top5.tolist()
lista_rep=list(set(top_tiendas) & set(top_ventas))
lista_colores=[]
for c in top_tiendas:
if c in top_ventas:
lista_colores.append('g')
else:
lista_colores.append('b')
df_grafica6.plot(kind='bar', figsize=(18,5), color=lista_colores)
print(('Las compañías que hacen parte del top de ventas y a las vez del top de más tiendas son {}').format(lista_rep))
Las compañías que hacen parte del top de ventas y a las vez del top de más tiendas son ['Walgreen Boots', 'Walmart US']
df['Category'].unique()
df_grafica7=df['Sales'].groupby(by= df['Category']).sum().sort_values(ascending=False).head(5)
df_grafica7.plot(kind='pie', figsize=(18,10), label='')
df['ventas_x_tienda']=round(df['Sales']/df['Stores'],2)
df_8=df[(df['Stores']>0)]
df_8=df_8.sort_values(by=['ventas_x_tienda'], ascending=False).head(5)
series_8=df_8.iloc[0]
tienda=series_8['Company']
ventas_x_tienda=series_8['ventas_x_tienda']
print(('Se evidencia que la compañia que mas tiene efectivada de ventas por tienda es {t} con un factor de {v} ventas por tienda').format(t=tienda,v=ventas_x_tienda))
Se evidencia que la compañia que mas tiene efectivada de ventas por tienda es Costco con un factor de 181.92 ventas por tienda
df_8
Companyobject
Salesint64
2
Costco
90048
0
Walmart US
658119
10
Sam's Club
56828
24
Meijer
16592
21
HEB
21384
#df_8=df_8.set_index('Company')
df_8
df_8['ventas_x_tienda'].plot(kind='bar', figsize=(18,10),color=['b', 'g','g','g','g',])
print('en esta gráfica se evidencia el factor mencionado anteriomente')
en esta gráfica se evidencia el factor mencionado anteriomente
df_online=df[(df['Stores']==0)]
tiendas_internet=df_online.sort_values(by='Sales', ascending=False)
tiendas_internet=tiendas_internet['Company'].to_list()
df_online=df_online.sort_values(by='Sales', ascending=False).head(1)
tienda_online=df_online['Company'].iloc[0]
ventas_online=df_online['Sales'].iloc[0]
print(('Las tiendas que venden exclusivamebte online son {} ').format(tiendas_internet))
print(('Se evidencia que la compañía online que más vende es {t} con un total de {v}').format(t=tienda_online, v=ventas_online))
Las tiendas que venden exclusivamebte online son ['Amazon', 'Apple incl. Online']
Se evidencia que la compañía online que más vende es Amazon con un total de 71687
lista_colores=[]
todas_no_w=df_grafica2.index.to_list()
for c in todas_no_w:
if c in tiendas_internet:
lista_colores.append('r')
else:
lista_colores.append('b')
df_grafica2=df_p2['Sales'].groupby(by= df_p2['Company']).median().sort_values(ascending=False)
df_grafica2.plot(kind='bar', figsize=(18,10), color=lista_colores)
plt.axhline(y=mediana_ventas, color='g')
print('Las tiendas online estan resaltadas en color rojo, se evidencia que ambas están por encima de la mediana(verde)')
Las tiendas online estan resaltadas en color rojo, se evidencia que ambas están por encima de la mediana(verde)
df_8
Companyobject
Salesint64
2
Costco
90048
0
Walmart US
658119
10
Sam's Club
56828
24
Meijer
16592
21
HEB
21384
df_cat_st=df[['Category', 'Stores']]
df_cat_st = df_cat_st['Stores'].groupby(df_cat_st['Category']).sum().sort_values(ascending=False).head(1)
mejor_cat_st = df_cat_st.index[0]
tiendas_cat = df_cat_st.iloc[0]
df_cat = df['Stores'].groupby(df['Category']).sum()
df_cat.plot(kind='pie', figsize=(19,10))
(('La categoría que mas tiendas tiene se llama {m} y posee un total de {v} puntos').format(m=mejor_cat_st, v=tiendas_cat))
df_cat=df[['Category', 'Sales']]
df_cat
Categoryobject
Grocery28%
9 others68%
Missing4%
Salesint64
16592 - 658119
0
Supercenters
658119
1
Grocery
115037
2
Warehouse Club
90048
3
Home Improvement
83976
4
Drug Stores
78924
5
Drug Stores
77792
6
Electronic/Mail Order
71687
7
Supercenters
71208
8
Home Improvement
60311
9
Grocery
56829
df_cat=df[['Category', 'Sales']]
df_cat = df_cat['Sales'].groupby(df_cat['Category']).sum().sort_values(ascending=False).head(1)
mejor_cat = df_cat.index[0]
ventas_cat = df_cat.iloc[0]
df_cat = df['Sales'].groupby(df['Category']).sum()
df_cat.plot(kind='pie', figsize=(19,10))
(('La categoría que mas vende se llama {m} y posee un total de {v} ventas').format(m=mejor_cat, v=ventas_cat))
df_9=df[(df['Stores']>0)]
df_9=df_9.sort_values(by=['ventas_x_tienda'], ascending=False).head(5)
series_9=df_9.iloc[0]
cat=series_9['Category']
ventas_x_tienda=series_9['ventas_x_tienda']
df_9=df_9.set_index('Category')
df_9['ventas_x_tienda'].plot(kind='bar', figsize=(19,10))
print(('Se evidencia que la Categoría que mas tiene efectivadad de ventas por tienda es {t} con un factor de {v} ventas por tienda').format(t=cat,v=ventas_x_tienda))
Se evidencia que la Categoría que mas tiene efectivadad de ventas por tienda es Warehouse Club con un factor de 181.92 ventas por tienda