Análisis de los 25 retailers más grandes de Estados Unidos
# Importando librerías
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Esto es de mi parte equisde
import squarify
# Importando datos
df = pd.read_csv('largest_us_retailers.csv')
# df
# df.info()
# df.isnull().sum() había datos nulos que pueden entorpercer el análisis
df.fillna(0, inplace=True)
I. Preguntas del negocio
plt.figure(figsize=(12,8))
squarify.plot(sizes=df['Sales'], label=df['Company'], alpha=.8 )
plt.axis('off')
plt.show()
walmart_nerf = round(df['Sales'][1::].mean())
walmart_nerf
df[df['Sales'] >= walmart_nerf][1::]
Companyobject
Kroger10%
Costco10%
8 others80%
Salesint64
56828 - 115037
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
10
Sam's Club
56828
bins=[0, 20000, 40000, 60000, 80000, 100000, 120000]
plt.hist(df['Sales'], bins, alpha=0.7)
plt.style.use('ggplot')
plt.title('¿Cuánto dinero generan las compañías?')
plt.xlabel('Ventas en MM de US$')
plt.ylabel('Cantidad de Compañías')
plt.show()
df[(df['Sales'] >= 20000) & (df['Sales'] <= 40000)]
Companyobject
Apple incl. Online9.1%
Best Buy9.1%
9 others81.8%
Salesint64
21384 - 37664
11
Apple incl. Online
37664
12
Best Buy
34980
13
Publix
34408
14
Rite Aid
27486
15
Ahold
26903
16
Macy's
26028
17
TJX
25012
18
Aldi
24402
19
Dollar General
22234
20
Dollar Tree
21464
bins=[0, 3000, 6000, 9000, 12000, 15000]
plt.hist(df['Stores'], bins, alpha=0.5)
plt.style.use('seaborn-colorblind')
plt.ylabel('Compañías')
plt.xlabel('Tiendas')
plt.show()
#hacer otra tabla de menos de 3k :v
bins=[0, 500, 1000, 1500, 2000, 2500, 3000]
plt.hist(df['Stores'], bins, alpha=0.5)
plt.ylabel('Compañías')
plt.xlabel('Tiendas')
plt.show()
plt.figure(figsize=(8,6))
plt.scatter(df['Stores'], df['Sales']) #, c=df['Sales/Avg. Store'], s=df['Sales/Avg. Store'])
plt.title('¿Si una empresa tiene más tiendas tendrá más dinero de ventas?')
plt.xlabel('Tiendas')
plt.ylabel('Ventas')
plt.show()
range_sales_df = df['Sales'].max() - df['Sales'].min()
range_sales_df
range_nerf_walmart_df = df['Sales'][1::].max() - df['Sales'][1::].min()
range_nerf_walmart_df
df_sorted_stores = df.sort_values('Stores', ascending=0)
plt.barh(df_sorted_stores['Company'][0:5], df_sorted_stores['Stores'][0:5], color=['black', 'red', 'green', 'blue', 'cyan'])
plt.style.use('ggplot')
plt.title('¿Quién tiene más tiendas?')
plt.show()
plt.style.use('tableau-colorblind10')
plt.barh(df['Company'][0:5], df['Sales'][0:5], color=['pink', 'royalblue', 'peru', 'coral', 'gold'])
plt.title('Facturación en MM de US$ por compañía')
plt.show()
category_df = df.groupby('Category').agg({'Sales': 'sum'})
category_df = category_df.reset_index()
category_df = category_df.sort_values('Sales', ascending=0)
plt.barh(category_df['Category'][0:5], category_df['Sales'][0:5], color=['gold', 'chartreuse' , 'darkcyan', 'c', 'm'])
plt.title('Ventas en MM de US$ por categoría')
plt.show()
cat_count_df = df.groupby('Category').agg({'Company': 'count'})
cat_count_df = cat_count_df.reset_index()
cat_count_df.sort_values('Company', ascending=0)
Categoryobject
Grocery8.3%
Drug Stores8.3%
10 others83.3%
Companyint64
1 - 7
7
Grocery
7
4
Drug Stores
3
9
Supercenters
3
2
Department Stores
2
3
Dollar Stores
2
8
Home Improvement
2
0
0
1
1
Apparel
1
5
Electronic/Mail Order
1
6
Electronics
1
df[['Company','Sales','Category']][0:1]
Companyobject
Salesint64
0
Walmart US
658119
copy_df = df[1::]
cat_copy_df = copy_df.groupby('Category').agg({'Sales': 'sum'})
cat_copy_df = cat_copy_df.reset_index()
cat_copy_df = cat_copy_df.sort_values('Sales', ascending=0)
plt.barh(cat_copy_df['Category'][0:5], cat_copy_df['Sales'][0:5], color=['green', 'b' , 'grey', 'm', 'cyan'])
plt.title('Ventas en MM de US$ por categoría')
plt.show()
cat_copy_df[['Category','Sales']][0:1]
Categoryobject
Salesint64
7
Grocery
297164
df_sale_avg = df.sort_values('Sales/Avg. Store', ascending=0)
plt.barh(df_sale_avg['Company'][0:5], df_sale_avg['Sales/Avg. Store'][0:5], color=['y', 'hotpink', 'cadetblue', 'orange', 'm'])
plt.style.use('ggplot')
plt.title('Promedio de venta por tienda física')
plt.show()
round(df_sale_avg[['Company','Sales/Avg. Store']][0:1])
Companyobject
Sales/Avg. Storefloat64
2
Costco
188
df[(df['Stores'] == 0)]
Companyobject
Salesint64
6
Amazon
71687
11
Apple incl. Online
37664
df['Sales'].sum()
# Para hablar de billones de dólares
sales_sum_df = (df['Sales'].sum())/1000000
round(sales_sum_df, 1)
walmart_for_25_retailers = 100*(df['Sales'][0:1].sum())/(df['Sales'].sum())
round(walmart_for_25_retailers)
round(df['Stores'].sum())
round(df['Sales/Avg. Store'].mean())
# !pip install session_info
import session_info
session_info.show()