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/largest_us_retailers.csv')
df.head()
I. Preguntas del negocio
df_sorted = df.sort_values('Sales', ascending=0)
df_wo_walmart = df_sorted[1:26]
print('Promedio ventas excluyendo a Walmart: ', df_wo_walmart['Sales'].mean())
sns.displot(df['Sales'])
plt.xlabel('Ventas ($)')
plt.ylabel('Empresas')
plt.xticks([0,40000,60000,650000])
#plt.xticks(range(0,650000,50000))
plt.xticks(rotation='vertical')
plt.title('Distribución de ventas de las 25 Compañías')
plt.show()
mediana = df_wo_walmart.Stores.median()
sns.displot(df['Stores'])
plt.xlabel('Tiendas')
plt.ylabel('Empresas')
plt.xticks(range(0,14000,1000))
plt.xticks(rotation='vertical')
plt.title('Distribución de tiendas de las compañías')
plt.show()
print('La mediana del número de tiendas es ', mediana)
sns.scatterplot(data=df, x='Sales', y='Stores')
plt.show()
rango = df['Sales'].max() - df['Sales'].min()
rango
df_stores_sorted = df.sort_values('Stores', ascending=0)
df_stores_sorted.head()
df_sales_sorted = df.sort_values('Sales', ascending=0)
df_sales_sorted.head()
# Mostramos el Dataset ordenado por Ventas
print(df_sorted[0:1])
# Mostramos el Dataset ordenado por Ventas:
df_sales = df_sales_sorted
# Creamos nueva columna en el Dataset para almacenar Sales/Stores
df_sales['Sales/Stores'] = 0
# Creamos lista temporal para almacenar resultado de la divison de Sales/Stores
salesStoresList = []
# Columna 1 es de Ventas, Columna 2 es de Tiendas, en el Dataset
for i in range (25):
# resultado temporal de la vision Sales/Stores, linea por linea
tmpDivision = (df_sales.iloc[i,1] / df_sales.iloc[i,2])
salesStoresList.append(tmpDivision)
# Asignamos la lista de resultados Sales/Stores a la columna de Sales/Stores
df_sales['Sales/Stores'] = salesStoresList
# Ordenamos de mayor a menor el nuevo Dataet df_sales, en función de Sales/Stores
df_SalesStoresSorted = df_sales.sort_values('Sales/Stores', ascending=0)
# Graficamos los datos ordenados por Sales/Stores
sns.barplot(data=df_SalesStoresSorted, x='Company', y='Sales/Stores')
plt.xticks(rotation='vertical')
plt.show
df.sort_values('Stores', ascending=True)
onlineCompanies = df[df.isnull().any(True)]
ventasOnline = onlineCompanies['Sales'].sum()
print('Las ventas de las Tiendas online es: $',ventasOnline)
plt.bar(onlineCompanies.Company,onlineCompanies.Sales)
plt.title('Ventas online por Compañía')
plt.show
#Filtramos todas las tiendas fisicas eliminando las que tienen NA Stores
physicalStores = df.dropna()
physicalStores
fig, ax = plt.subplots()
# Graficamos Tiendas Físicas (azul)
ax.bar(physicalStores.Company, physicalStores.Sales)
# Graficamos Tiendas Online (naranja)
ax.bar(onlineCompanies.Company, onlineCompanies.Sales)
# Añadimos linea verde de Promedio de ventas
ax.axhline(df['Sales'].mean(), color='g', linestyle='--')
plt.xticks(rotation=270)
plt.title('Ventas de tiendas físicas')
plt.show()
df
sns.displot(df, x='Sales', hue='Category', multiple='stack')