<jupyter_start><jupyter_text>MAT281 - Laboratorio N°06 Objetivos de la clase* Reforzar los conceptos básicos del E.D.A..  Contenidos* [Problema 01](p1)  Problema 01 El **Iris dataset** es un conjunto de datos que contine una  muestras de tres especies de Iris (Iris setosa, Iris virginica e Iris versicolor). Se midió cuatro rasgos de cada muestra: el largo y ancho del sépalo y pétalo, en centímetros.Lo primero es cargar el conjunto de datos y ver las primeras filas que lo componen:<jupyter_code># librerias
 
import os
import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import seaborn as sns 
pd.set_option('display.max_columns', 500)  # Ver más columnas de los dataframes


# Ver gráficos de matplotlib en jupyter notebook/lab
%matplotlib inline
# cargar datos
df = pd.read_csv(os.path.join("data","iris_contaminados.csv"))
df.columns = ['sepalLength',
                  'sepalWidth',
                  'petalLength',
                  'petalWidth',
                  'species']


df.head()<jupyter_output><empty_output><jupyter_text>Bases del experimentoLo primero es identificar las variables que influyen en el estudio y la naturaleza de esta.* **species**:     * Descripción: Nombre de la especie de Iris.     * Tipo de dato: *string*    * Limitantes: solo existen tres tipos (setosa, virginia y versicolor).* **sepalLength**:     * Descripción: largo del sépalo.     * Tipo de dato: *integer*.     * Limitantes: los valores se encuentran entre 4.0 y 7.0 cm.* **sepalWidth**:     * Descripción: ancho del sépalo.     * Tipo de dato: *integer*.     * Limitantes: los valores se encuentran entre 2.0 y 4.5 cm.* **petalLength**:     * Descripción: largo del pétalo.     * Tipo de dato: *integer*.     * Limitantes: los valores se encuentran entre 1.0 y 7.0 cm.* **petalWidth**:     * Descripción: ancho del pépalo.     * Tipo de dato: *integer*.     * Limitantes: los valores se encuentran entre 0.1 y 2.5 cm. Su objetivo es realizar un correcto **E.D.A.**, para esto debe seguir las siguientes intrucciones: 1. Realizar un conteo de elementos de la columna **species** y corregir según su criterio. Reemplace por "default" los valores nan..<jupyter_code>df['species'].replace({"nan": 'default'})
df['species']=df['species'].str.lower().str.strip()
pd.DataFrame(df["species"].value_counts())<jupyter_output><empty_output><jupyter_text>2. Realizar un gráfico de box-plot sobre el largo y ancho de los petalos y sépalos. Reemplace por **0** los valores nan.<jupyter_code>for cols in df.columns[:-1]:
    df.loc[df[cols].isnull(),cols] = 0
        
df2 = df.drop(['species'], axis=1)
sns.boxplot(data=df2)<jupyter_output><empty_output><jupyter_text>3. Anteriormente se define un rango de valores válidos para los valores del largo y ancho de los petalos y sépalos. Agregue una columna denominada **label**  que identifique cuál de estos valores esta fuera del rango de valores válidos.<jupyter_code>label0=list()
for i in range(0,len(df)):
    if (4.0>df['sepalLength'][i] or 7.0<df['sepalLength'][i]) or  (2>df['sepalWidth'][i] or 4.5<df['sepalWidth'][i]) or (1.0>df['petalLength'][i] or 7.0<df['petalLength'][i] ) or (0.1>df['petalWidth'][i] or  2.5<df['petalWidth'][i]) :
        label0.append("Fuera de rango")
    else:
        label0.append("Dentro de rango")
    
label1=pd.DataFrame(label0)
df=df.assign(label=label1)<jupyter_output><empty_output><jupyter_text>4. Realice un gráfico de sepalLength vs petalLength y otro de sepalWidth vs petalWidth categorizados por la etiqueta label. Concluya sus resultados.<jupyter_code>fig, ax=plt.subplots()
for label in df['label'].unique():
    x_1=df.loc[df['label']==label,'sepalLength']
    y_1=df.loc[df['label']==label,'petalLength']
    ax.scatter(x_1,y_1,label=label)

ax.legend()


plt.show
fig, ax=plt.subplots()
for label in df['label'].unique():
    x_2=df.loc[df['label']==label,'sepalWidth']
    y_2=df.loc[df['label']==label,'petalWidth']
    ax.scatter(x_2,y_2,label=label)
ax.legend()


plt.show<jupyter_output><empty_output><jupyter_text>5. Filtre los datos válidos y realice un gráfico de *sepalLength* vs *petalLength* categorizados por la etiqueta **species**.<jupyter_code>df_a=df.loc[df['label']=='Dentro de rango']
fig,ax=plt.subplots()
for specie in df_a['species'].unique():
    x_1=df_a.loc[df_a['species']==specie,'sepalLength']
    y_1=df_a.loc[df_a['species']==specie,'petalLength']
    ax.scatter(x_1,y_1,label=specie)
ax.legend()
plt.xlabel('sepalLength')
plt.ylabel('petalLength')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13424900310146212, 'fraction_numerical': 0.01639344262295082, 'mean_word_length': 4.629675810473816, 'pattern_counts': {'":': 1, '<': 29, '<?xml version=': 0, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '454254', 'license': 'MIT', 'n_tokens_mistral': 1722, 'n_tokens_neox': 1671, 'n_words': 442, 'path': 'labs/laboratorio_06.ipynb', 'repo_name': 'HugoMAT/mat281_portfolio-', 'size': '4514'}