<jupyter_start><jupyter_text>Se puede ver que los tipos de datos para las columnas de interes son números flotantes por lo cual es posible continuar con la construcción de las tablas de percentiles.<jupyter_code># Useful constants and functions
percentiles = ['P3', 'P5', 'P10', 'P25', 'P50', 'P75', 'P90', 'P95', 'P97']

def get_weight_by_age_percentiles_plot(data):
    for p in percentiles:
        plt.plot(data['Agemos'], data[[p]], label=p)

    plt.axis(xmin=0, xmax=36)
    plt.xlabel('Mes')
    plt.ylabel('Peso (Kg)')
    plt.grid()
    plt.legend()
    plt.show()
_, ax_freq = plt.subplots(figsize=(10, 10))
ax_freq.set_title('Percentiles de peso por edad (niños)')

# Boys Weight per age percentile chart
boys_weight_data = weight_age[weight_age.Sex == 1]
get_weight_by_age_percentiles_plot(boys_weight_data)

_, ax_freq = plt.subplots(figsize=(10, 10))
ax_freq.set_title('Percentiles de peso por edad (niñas)')

# Girls Weight per age percentile chart
girls_weight_data = weight_age[weight_age.Sex == 2]
get_weight_by_age_percentiles_plot(girls_weight_data)
# Grow table - Length for Age
length_age = pd.read_csv('../../datasets/lenageinf.csv')
length_age[:100:10]
# Let's check the type for each column
length_age.dtypes
# Describe the Agemos column
length_age[['Agemos', 'Sex']].describe()<jupyter_output><empty_output><jupyter_text>Podemos observar de la tabla anterior que existe un valor para el sexo que no corresponde con los valores 1 y 2.<jupyter_code>length_age.Sex.unique()
length_age[length_age.Sex == "Sex"]<jupyter_output><empty_output><jupyter_text>En efecto podemos observar que hay una fila que introduce ruido en los datos originales, procederemos a eliminarla<jupyter_code># Discard corrupted row
filtered_length_age = length_age.drop(length_age.index[37])
filtered_length_age.Sex.unique()<jupyter_output><empty_output><jupyter_text>Otra observación es que los valores de la columna "Agemos" como así también los valores que representan a los percentiles son de tipo `object`. Por lo cual, se procederá a transformar dichas columnas en números decimales para posteriormente poder trabajar con los mismos.<jupyter_code>percentiles = ['P3', 'P5', 'P10', 'P25', 'P50', 'P75', 'P90', 'P95', 'P97']
converted_length_age = filtered_length_age[['Sex', 'Agemos'] + percentiles].convert_objects(convert_numeric=True)
converted_length_age
# Useful constants and functions
percentiles = ['P3', 'P5', 'P10', 'P25', 'P50', 'P75', 'P90', 'P95', 'P97']

def get_length_by_age_percentiles_plot(data):
    for p in percentiles:
        plt.plot(data['Agemos'], data[[p]], label=p)

    plt.axis(xmin=0, xmax=36)
    plt.xlabel('Mes')
    plt.ylabel('Longitud (cm)')
    plt.grid()
    plt.legend()
    plt.show()
_, ax_freq = plt.subplots(figsize=(10, 10))
ax_freq.set_title('Percentiles de longitud por edad (niños)')

# Boys Length per age percentile chart
boys_length_data = converted_length_age[converted_length_age.Sex == 1]
get_length_by_age_percentiles_plot(boys_length_data)
_, ax_freq = plt.subplots(figsize=(10, 10))
ax_freq.set_title('Percentiles de longitud por edad (niñas)')

# Girls Length per age percentile chart
girls_length_data = converted_length_age[converted_length_age.Sex == 2]
get_length_by_age_percentiles_plot(girls_length_data)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1203030303030303, 'fraction_numerical': 0.02515151515151515, 'mean_word_length': 6.239035087719298, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, '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': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '264814', 'license': 'MIT', 'n_tokens_mistral': 1244, 'n_tokens_neox': 1176, 'n_words': 292, 'path': 'data_curation/class_3_4/growth_table.ipynb', 'repo_name': 'rodricarranza/DiploDatos', 'size': '3300'}