# Librerias de manejo de datos / calculos algebraicos / grafica
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Librerias adicionales
df = pd.read_csv('/work/largest_us_retailers.csv')
df.head(10)
Companyobject
Walmart US10%
Kroger10%
8 others80%
Salesint64
56829 - 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
df.isnull().sum()
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 25 entries, 0 to 24
Data columns (total 6 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Company 25 non-null object
1 Sales 25 non-null int64
2 Stores 23 non-null float64
3 Sales/Avg. Store 23 non-null float64
4 Store Count Growth 23 non-null float64
5 Category 24 non-null object
dtypes: float64(3), int64(1), object(2)
memory usage: 1.3+ KB
I. Preguntas del negocio
df.columns
df_sorted = df.sort_values('Sales', ascending=0)
x = df_sorted['Company'][0:]
y = df_sorted['Sales'][0:]
plt.bar(x, y)
plt.xlabel('Compañias')
plt.ylabel('Ventas en millones $USD')
plt.title('10 Compañias con Mayores Ventas')
plt.xticks(rotation='vertical')
plt.show()
#
df_sales= df.groupby('Company')['Sales'].mean().sort_values(ascending=False).reset_index()
df_dominant = df_sales.max()
df_no_dominant = df[df_sales.Company != df_dominant.Company]
print(df_dominant)
print(f"Promedio de ventas (sin considerar {df_dominant.Company}):\n$ {round(df_no_dominant.mean().Sales, 2)} ")
Company Walmart US
Sales 658119
dtype: object
Promedio de ventas (sin considerar Walmart US):
$ 46602.42
#
b=sns.barplot(data=df_no_dominant,y='Company', x='Sales', palette='viridis')
#
xlabels = ['$ {:,.0f}'.format(x) + ' USD' for x in b.get_xticks()]
b.set_xticklabels(xlabels,fontsize='12')
#
plt.title('Promedio de Ventas de Retailers en US (sin considerar el dominante)\n', fontsize=16)
plt.ylabel('Reatails mas grandes de EEUU')
plt.xlabel('Ventas en Millones USD')
# Linea del Valor Promedio de Ventas
plt.axvline(df_no_dominant['Sales'].mean(), color='tomato')
text = 'Promedio de Ventas: $ {:,.2f} Millones USD'.format(df_no_dominant['Sales'].mean())
plt.text(30000,18, s=text, color='white', size=14 ).set_backgroundcolor('red')
plt.show()
/shared-libs/python3.7/py-core/lib/python3.7/site-packages/ipykernel_launcher.py:6: UserWarning: FixedFormatter should only be used together with FixedLocator
# Mediana de los datos de cada categoría/columna
df.median(axis=0)
# Estadísticos descriptivos de las Ventas
df['Sales'].describe()
# Grafica de barras con los valores de las ventas
b = sns.histplot(data=df,x="Sales",bins=30, color='limegreen')
plt.title('Ventas de Retailers en US (sin considerar el dominante)\n', fontsize=12)
plt.xlabel('Ventas en Millones USD')
plt.grid()
plt.show()
sns.set(rc = {'figure.figsize':(20,8)})
h=sns.boxplot(data=df, x='Sales', palette='viridis')
plt.title('Ventas de Retailers en US (sin considerar el dominante)\n')
plt.ylabel('Reatails mas grandes de EEUU')
plt.xlabel('Ventas en Millones USD')
plt.show()
sns.histplot(data=df_no_dominant,x="Sales",bins=30, color='limegreen')
plt.title('Ventas de Retailers en US (sin considerar el dominante)\n', fontsize=12)
plt.xlabel('Ventas en Millones USD')
plt.grid()
plt.show()
h=sns.boxplot(data=df_no_dominant, x='Sales', palette='viridis')
plt.title('Ventas de Retailers en US (sin considerar el dominante)\n')
plt.ylabel('Reatails mas grandes de EEUU')
plt.xlabel('Ventas en Millones USD')
plt.show()
df.median()
df['Stores'].describe()
sns.set()
h=sns.boxplot(data=df, x='Stores', orient='vertical', palette="viridis")
plt.title('Tiendas de distribucion de retailers EE.UU', size=18)
plt.xlabel('Numero de Tiendas', size=14)
plt.show(block=None)
/shared-libs/python3.7/py/lib/python3.7/site-packages/seaborn/_core.py:1326: UserWarning: Vertical orientation ignored with only `x` specified.
warnings.warn(single_var_warning.format("Vertical", "x"))