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 )
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')
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))
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))
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')
minimo_ventas=df['Sales'].min()
maximo_ventas=df['Sales'].max()
print('El rango de ventas esta entre ' + str(minimo_ventas) + ' y ' + str(maximo_ventas))
#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))
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))
df_8
#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')
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))
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)')
df_8
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
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))