<jupyter_start><jupyter_text>MAT281 - Laboratorio N°03 Objetivos de la clase* Reforzar los conceptos básicos de pandas.  Contenidos* [Problema 01](p1)  Problema 01EL conjunto de datos se denomina `ocupation.csv`, el cual contiene información tal como: edad ,sexo, profesión, etc.Lo primero es cargar el conjunto de datos y ver las primeras filas que lo componen:<jupyter_code>import pandas as pd
import os
# cargar datos
df = pd.read_csv(os.path.join("data","ocupation.csv"), sep="|").set_index('user_id')
df.head()
# se eliminan los valore nulos del dataframe
df = df[lambda df: df.notnull().all(axis=1)]<jupyter_output><empty_output><jupyter_text>El objetivo es tratar de obtener la mayor información posible de este conjunto de datos. Para cumplir este objetivo debe resolver las siguientes problemáticas: 1. ¿Cuál es el número de observaciones en el conjunto de datos?<jupyter_code>df.shape<jupyter_output><empty_output><jupyter_text>Por lo tanto el número de observaciones es 943  2. ¿Cuál es el número de columnas en el conjunto de datos?<jupyter_code>number = len(df.columns)
print("el número de columnas en el conjunto de datos es:",number)<jupyter_output>el número de columnas en el conjunto de datos es: 4<jupyter_text>3. Imprime el nombre de todas las columnas<jupyter_code>for i in range(len(df.columns)):
    print(df.columns[i])<jupyter_output>age
gender
occupation
zip_code<jupyter_text>4. Imprima el índice del dataframe<jupyter_code>df.index<jupyter_output><empty_output><jupyter_text>5. ¿Cuál es el tipo de datos de cada columna?<jupyter_code>print("Tipo de dato por columna:")
df.dtypes<jupyter_output>Tipo de dato por columna:<jupyter_text>6. Resumir el conjunto de datos<jupyter_code>df.describe()<jupyter_output><empty_output><jupyter_text>7. Resume conjunto de datos  con todas las columnas<jupyter_code>df.describe(include='all')<jupyter_output><empty_output><jupyter_text>8. Imprimir solo la columna de **occupation**.<jupyter_code>df['occupation']<jupyter_output><empty_output><jupyter_text>9. ¿Cuántas ocupaciones diferentes hay en este conjunto de datos?<jupyter_code>ocupaciones_diferentes = df['occupation'].unique()
ocupaciones_totales = list(ocupaciones_diferentes)
n = len(ocupaciones_totales)
print("el número de ocupaciones diferentes es:" ,n)<jupyter_output>el número de ocupaciones diferentes es: 21<jupyter_text>10. ¿Cuál es la ocupación más frecuente?<jupyter_code>diccionario={}

for ocupacion in ocupaciones_diferentes:
    diccionario[ocupacion]=0

for ocupacion1 in diccionario.keys():
    for ocupacion2 in df['occupation']:
        if ocupacion1==ocupacion2:
            diccionario[ocupacion1]+=1 

dataframe = pd.DataFrame({
            "ocupacion":diccionario.keys(),
             "ocurrencia":diccionario.values()
})

dataframe

maxima_frecuencia=dataframe['ocurrencia'].max()

for i in diccionario.keys():
    if diccionario[i]==maxima_frecuencia:
        print("La ocupación con la mayor ocurrencia es:",i)<jupyter_output>La ocupación con la mayor ocurrencia es: student<jupyter_text>11. ¿Cuál es la edad media de los usuarios?<jupyter_code>edades = df['age']
print("La edad media de los usuarios es:",edades.mean())<jupyter_output>La edad media de los usuarios es: 34.05196182396607<jupyter_text>12. ¿Cuál es la edad con menos ocurrencia?<jupyter_code>diccionario2 = {}

edades_diferentes = df['age'].unique()

for edad in edades_diferentes:
    diccionario2[edad]=0

for edad1 in diccionario2.keys():
    for edad2 in df['age']:
        if edad1==edad2:
            diccionario2[edad1]+=1 

dataframe2 = pd.DataFrame({
            "edad":diccionario2.keys(),
            "ocurrencia":diccionario2.values()
})

print(dataframe2)

minima_ocurrencia = dataframe2['ocurrencia'].min()

lista_de_edades=[]

for i in diccionario2.keys():
    if diccionario2[i]==minima_ocurrencia:
        lista_de_edades.append(i)
print("Las edades con la menor ocurrencia son:")
for i in lista_de_edades:
    print(i)<jupyter_output>edad  ocurrencia
0     24          33
1     53          12
2     23          28
3     33          26
4     42          21
..   ...         ...
56    10           1
57    73           1
58    58           3
59    69           2
60    70           3

[61 rows x 2 columns]
Las edades con la menor ocurrencia son:
7
66
11
10
73
StarcoderdataJupyterStructuredCleanDedup