import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('/work/largest_us_retailers.csv')
df.head()
retailers = df.sort_values('Sales', ascending=0)
retailers
retailers.describe()
x = retailers['Company']
y = retailers['Sales']
plt.figure(figsize=(9,5))
plt.bar(x,y, color='green')
plt.xticks(rotation=90)
plt.title('Retailers con Mayores Ventas')
plt.xlabel('Companies')
plt.ylabel('USD MM')
plt.show()
other_ret = retailers[retailers.Company != 'Walmart US']
mean_sales = other_ret['Sales'].mean()
mean_sales = mean_sales.round(2)
print(mean_sales)
# Si lo vemos gráficamente
fig, ax = plt.subplots(figsize=(9,5))
x = other_ret['Company']
y = other_ret['Sales']
plt.bar(x,y, color='green')
ax.axhline(mean_sales, label='Promedio de Ventas', ls='--', color='red')
plt.title('Ventas de los demás Retailers')
plt.xticks(rotation=90)
plt.xlabel('Companies')
plt.ylabel('USD MM')
plt.legend()
plt.show()
plt.hist(other_ret['Sales'], bins=4)
plt.title('Dinero en Ventas')
plt.xlabel('Ventas en USD MM')
plt.show()
x = other_ret['Company']
y = other_ret['Stores']
fig, ax = plt.subplots(figsize=(9,5))
stores_co = retailers.groupby('Company')['Stores'].sum()
plt.title('Tiendas')
plt.xlabel('Cantidad de Tiendas')
plt.ylabel('Cantidad de Compañías')
plt.hist(stores_co, color='green', edgecolor='black')
plt.show()
max_stores = retailers['Stores'].max()
print('La máxima cantidad de tiendas es:', max_stores)
sns.scatterplot(x=retailers.Stores, y=retailers.Sales, color='green')
plt.title('Cant. de Tiendas vs Ventas ')
plt.xlabel('Tiendas')
plt.ylabel('Ventas')
plt.show()
max_sales = retailers['Sales'].max()
min_sales = retailers['Sales'].min()
print(max_sales)
print(min_sales)
print(max_sales - min_sales)
stores_top5 = retailers.sort_values('Stores', ascending=0)
x = stores_top5['Company'][:5]
y = stores_top5['Stores'][:5]
fig, ax = plt.subplots(figsize=(9,6))
plt.bar(x,y, color='green', edgecolor='black')
plt.xticks()
plt.xlabel('Compañía')
plt.ylabel('Cantidad de tiendas')
plt.show()
x = stores_top5['Company'][:5]
y = stores_top5['Sales'][:5]
fig, ax = plt.subplots(figsize=(9,6))
plt.barh(x,y, color='green')
plt.title('Top 5 Retailers')
plt.xticks()
plt.xlabel('ventas')
plt.ylabel('Compañía')
plt.show()
sales_category = retailers.groupby('Category')['Sales'].sum()
category_top10 = sales_category.sort_values(ascending=False).head(10)
category_top10
# Si lo graficamos sería
x = category_top10.index
y = category_top10
plt.barh(x,y, color='green', edgecolor='black')
plt.xticks(rotation=35)
plt.title('Ventas por Categoría')
plt.xlabel('USD MM')
plt.show()
# Creamos una nueva columna para calcular la relación
retailers['Sales/Store Ratio'] = retailers.Sales / retailers.Stores
sales_ratio = retailers.sort_values('Sales/Store Ratio', ascending=0).head(10)
sales_ratio = sales_ratio.round(2)
sales_ratio
# Graficamos
x = sales_ratio['Company']
y = sales_ratio['Sales/Store Ratio']
plt.barh(x,y, color='green', edgecolor='black')
plt.xticks()
plt.title('Relación entre Tiendas y Ventas')
plt.xlabel('USD MM')
plt.ylabel('Tiendas')
plt.show()
# Hacemos un filtro de las tiendas online
web_stores = retailers[retailers.Stores.isnull()]
web_stores
# Calculamos el promedio de ventas de las web stores
web_stores['Sales'].mean()
# Analizamos las tiendas físicas
physic_stores = retailers[retailers.Stores.notnull()]
physic_stores
# Calculamos el promedio de ventas de las tiendas físicas
physic_stores['Sales'].mean()
other_physic_stores = other_ret[other_ret.Stores.notnull()]
other_physic_stores
other_physic_stores['Sales'].mean()