No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

Preparar datos para clusterizar

19/27
Recursos

Aportes 19

Preguntas 2

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

Dejo por ac√° este codigo para visualizar mejor los boxplot:

import matplotlib.pyplot as plt
import seaborn as sns

int_cols = df_country.select_dtypes(exclude='object').columns
num_plots = len(int_cols)
rows = 3  # N√ļmero de filas deseadas
cols = num_plots // rows + (num_plots % rows > 0)  # N√ļmero de columnas deseadas

fig, axes = plt.subplots(rows, cols, figsize=(15, 15))  # Ajusta el tama√Īo de la figura seg√ļn tus necesidades

for i, col in enumerate(int_cols):
    ax = axes[i // cols, i % cols] if rows > 1 else axes[i % cols]  # Obtén el eje correspondiente
    sns.boxplot(data=df_country, y=col, ax=ax)
    ax.set_title(col)  # Opcional: establece el título de cada gráfico

plt.tight_layout()  # Ajusta el espaciado entre los gr√°ficos
plt.show()

Para mostrar los países ordenados de mayor inflación a menor.

df_country.sort_values('inflation', ascending=False)

Reto:

# ūüďä Otra forma de ver los subplots: ```python num_cols = df.select_dtypes(exclude='object').columns fig, axs = plt.subplots(3, 3, figsize=(8, 10)) plt.tight_layout(pad=3) for i, ax in enumerate(axs.flat): sns.boxplot(data=df, y=num_cols[i], ax=ax) ``` ![](https://static.platzi.com/media/user_upload/image-2e8f193a-6083-4476-be24-70d02008b720.jpg)

Reto:

highest_inflation = df_country['inflation'].max()
country_with_highest_inflation = df_country.loc[df_country['inflation'].idxmax(), 'country']

print("The highest inflation value is:", highest_inflation)
print("The country with the highest inflation is:", country_with_highest_inflation)

Con una inflación de 104, Nigeria es el país con mayor inflación.

max_inflation_data = df[df['inflation']==np.max(df['inflation'])]
max_inflation_country = max_inflation_data['country']
print(max_inflation_country)

Y con una inflaci√≥n de -4.21, Seychelles(Archipielago situado en √Āfrica occidental) es el pa√≠s con menor inflaci√≥n.

min_inflation_data = df[df['inflation']==np.min(df['inflation'])]
min_inflation_country = min_inflation_data['country']
print(min_inflation_country)
```js int_cols = df.select_dtypes(exclude='object').columns num_plots = len(int_cols) rows = 3 # N√ļmero de filas deseadas # Aqui se calcula el numero de columnas a partir de "rows". # Para divirdir num_plots y rows, se hace lo que es la division entera "//", todo esto para que nos el numero entero que necesita el grafico. # (num_plots % rows > 0) si tiene un resto mayor a 0 indica que necesitas de una columna extra para tus graficos, si sale exacto no necesita. # En este caso es 9 / 3 = 3.33 es decir 3, si se llegase a colocar 2, entonces seria 4.5 es decir 4 y en 2 filas seria 8 graficos, lo cual # Se tendria que aumentar una columna demas. cols = num_plots // rows + (num_plots % rows > 0) # Aca esta iterando "_" sobre "int_cols", con respecto al df fig, axes = plt.subplots(rows, cols, figsize=(15, 15)) # Ajusta el tama√Īo de la figura seg√ļn tus necesidades for _, col in enumerate(int_cols): # En el ax, primero calcula el indice de filas con una division entera "//" _ // cols # Para la calcular el indice de "ax", es de la siguiente manera _ % cols, que divide cols / _ ax = axes[_ // cols, _ % cols] if rows > 1 else axes[_ % cols] # Obt√©n el eje correspondiente plt.figure(figsize=(8,8)) sns.boxplot(data=df, y=col, ax=ax) ax.set_title(col) # Opcional: establece el t√≠tulo de cada gr√°fico plt.tight_layout() # Ajusta el espaciado entre los gr√°ficos plt.show() ```int\_cols = df.select\_dtypes(exclude='object').columns num\_plots = len(int\_cols) rows = 3 # N√ļmero de filas deseadas \# Aqui se calcula el numero de columnas a partir de "rows". \# Para divirdir num\_plots y rows, se hace lo que es la division entera "//", todo esto para que nos el numero entero que necesita el grafico. \# (num\_plots % rows > 0) si tiene un resto mayor a 0 indica que necesitas de una columna extra para tus graficos, si sale exacto no necesita. \# En este caso es 9 / 3 = 3.33 es decir 3, si se llegase a colocar 2, entonces seria 4.5 es decir 4 y en 2 filas seria 8 graficos, lo cual \# Se tendria que aumentar una columna demas. cols = num\_plots // rows + (num\_plots % rows > 0) \# Aca esta iterando "\_" sobre "int\_cols", con respecto al df fig, axes = plt.subplots(rows, cols, figsize=(15, 15)) # Ajusta el tama√Īo de la figura seg√ļn tus necesidades for \_, col in enumerate(int\_cols): \# En el ax, primero calcula el indice de filas con una division entera "//" \_ // cols \# Para la calcular el indice de "ax", es de la siguiente manera \_ % cols, que divide cols / \_ ax = axes\[\_ // cols, \_ % cols] if rows > 1 else axes\[\_ % cols] # Obt√©n el eje correspondiente plt.figure(figsize=(8,8)) sns.boxplot(data=df, y=col, ax=ax) ax.set\_title(col) # Opcional: establece el t√≠tulo de cada gr√°fico plt.tight\_layout() # Ajusta el espaciado entre los gr√°ficos plt.show()
Nigeria es el pais con alta Inflacion:![](https://static.platzi.com/media/user_upload/image-169983c1-2f96-40df-b5e2-e60933f7f3be.jpg)
***<u>OUTLIERS VS STANDARD DEVIATION</u>*** Outliers and standard deviation are related concepts, but they are not exactly the same thing. The standard deviation is a measure of the dispersion or spread of a set of values. It gives an idea of how much individual data points deviate from the mean (average) of the data set. Outliers, on the other hand, are data points that significantly differ from the rest of the data in a dataset. While the presence of outliers can affect the standard deviation, they are not solely determined by it. Outliers can be identified by various statistical methods, and they may not necessarily be located at a certain number of standard deviations from the mean. In some cases, outliers can have a substantial impact on the standard deviation, especially in smaller datasets. However, relying solely on standard deviation to identify outliers may not be sufficient, and other statistical techniques or domain knowledge may be necessary for a more comprehensive analysis of outliers in a dataset.
```python # Calculate the outliers for a determined category def outliers(category): # Calculate the interquartile range (IQR) Q1 = df[category].quantile(0.25) Q3 = df[category].quantile(0.75) IQR = Q3 - Q1 # Define outliers based on the IQR method lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR # Find outliers outliers = df[(df[category] < lower_bound) | (df[category] > upper_bound)] print("Outliers:") outliers_sorted = outliers.sort_values(by='income', ascending=False) print(outliers_sorted['country']) outliers('income') ```def outliers(category): # Calculate the interquartile range (IQR) Q1 = df\[category].quantile(0.25) Q3 = df\[category].quantile(0.75) IQR = Q3 - Q1 \# Define outliers based on the IQR method lower\_bound = Q1 - 1.5 \* IQR upper\_bound = Q3 + 1.5 \* IQR \# Find outliers outliers = df\[(df\[category] < lower\_bound) | (df\[category] > upper\_bound)] print("Outliers:") outliers\_sorted = outliers.sort\_values(by='income', ascending=False) print(outliers\_sorted\['country']) outliers('income')
Para poder visualizar el heatmap debí usar el siguiente código: # Seleccionar solo las columnas numéricas df\_numeric = df\_country.select\_dtypes(include=\['float64', 'int64']) \# Crear el mapa de calor solo con las columnas numéricas fig = plt.figure(figsize=(15,10)) sns.heatmap(df\_numeric.corr(), annot=True, cmap='coolwarm') plt.show()
Nigeria `df_country.loc[df_country['inflation']==df_country['inflation'].max()]`

Los resultados:

Para visualizar los primeros 20 países con el GDPP más alto

gdpp = df_country.sort_values('gdpp', ascending=False) 
gdpp.head(20)

Si est√°n trabajando con Visual Studio Code y les sale un Future warning, se corrige de la siguiente manera:

fig = plt.figure(figsize=(15,10))
numeric_corr = df_country.corr(numeric_only=True)
sns.heatmap(numeric_corr, annot=True, cmap='coolwarm')
plt.show()
indices_inflation = np.argsort(df['inflation'])[::-1]
paises_inflados = df.country[indices_inflation]
paises_inflados
df_country[df_country['inflation']>90]

Nigeria

ya que vimos el boxplot: