Entre en contacto con 10 estudiantes del curso de datos y 2 profesores personal de soporte de LaConga, uno del curso de datos y otro de fuera, y consulte su nombre completo, su nombre de usuario en mattermost, edad, país de origen, ciudad donde residen, su especialidad científica, nombre del instituto en el que estudian/laboran, y un hobbie o afición.
Cree un diccionario llamado compas, donde la llave sea el nombre de usuario en mattermost, y si despliego el valor almacenado, por ejemplo en compas["juan-pineda"]. lo que obtengo es a la vez otro diccionario, con las llaves "nombre", "apellido", "país", "residencia", "edad", "institución", "hobbie".
Cree una función que reciba como entrada el diccionario y un país de origen, y retorne las informaciones completas de todas personas de ese pais, tabuladas en forma facil de entender - Buscar una forma a partir del diccionario de hallar el promedio de las edades de las personas en él y una forma de mostrar las instituciones sin repetición.
!pip install --user pandas
import pandas as pd
Collecting pandas
Using cached https://files.pythonhosted.org/packages/7a/c2/339e302d4122cb8b166aecc823afed4af6b2193f040f2656eea77d174146/pandas-1.2.1-cp37-cp37m-manylinux1_x86_64.whl
Collecting pytz>=2017.3 (from pandas)
Using cached https://files.pythonhosted.org/packages/70/94/784178ca5dd892a98f113cdd923372024dc04b8d40abe77ca76b5fb90ca6/pytz-2021.1-py2.py3-none-any.whl
Requirement already satisfied: python-dateutil>=2.7.3 in /opt/jupyterhub/lib/python3.7/site-packages (from pandas) (2.8.1)
Collecting numpy>=1.16.5 (from pandas)
Using cached https://files.pythonhosted.org/packages/73/0d/20355061d7c382c973d9c62803c6f1bdb2e2eb9e5f3623dff2f94c0e253c/numpy-1.20.0-cp37-cp37m-manylinux1_x86_64.whl
Requirement already satisfied: six>=1.5 in /opt/jupyterhub/lib/python3.7/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)
Installing collected packages: pytz, numpy, pandas
The scripts f2py, f2py3 and f2py3.7 are installed in '/home/tugoresa/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed numpy-1.20.0 pandas-1.2.1 pytz-2021.1
Crear un diccionario con la información de cada persona.
nfernandez = pd.Series({'Nombre': 'Nicolás', 'Apellido': 'Fernandez', 'Especialidad': '-', 'País': 'Argentina',
'Residencia': 'Perú', 'Edad':27, 'Institucion': 'Unversidad Nacional Mayor de San Marcos',
'Hobbie':'Piano'})
gsemprum = pd.Series({'Nombre':'Gerardo', 'Apellido':'Semprum', 'Especialidad': 'Física', 'País':'Venezuela',
'Residencia': 'Caracas', 'Edad':24, 'Institucion': 'Universidad Central de Venezuela',
'Hobbie': 'Kung fu'})
jmalambo = pd.Series({'Nombre':'Jorge', 'Apellido': 'Malambo', 'Especialidad': 'Ciencia de Materiales', 'País': 'Colombia',
'Residencia': 'Bogota', 'Edad':39, 'Institucion': 'Universidad Nacional de Colombia',
'Hobbie': 'Talla en Madera'})
nhernandez = pd.Series({'Nombre':'Nicole', 'Apellido': 'Hernandez', 'Especialidad': 'Análisis de imágenes médicas',
'País': 'Colombia', 'Residencia': 'Bucaramanga', 'Edad':23,
'Institucion': 'Universidad Industrial de Santander', 'Hobbie': 'Pintar-dibujar'})
lleon = pd.Series({'Nombre':'Luis', 'Apellido': 'León', 'Especialidad': 'Gravitación', 'País': 'Perú',
'Residencia': 'Provincia Constitucional del Callao', 'Edad':22,
'Institucion': 'Universidad Nacional Mayor de San Marcos', 'Hobbie': 'Tocar guitarra'})
jgrisales = pd.Series({'Nombre':'Jennifer', 'Apellido': 'Grisales', 'Especialidad': 'Astropartículas', 'País': 'Colombia',
'Residencia': 'Bucaramanga', 'Edad':27, 'Institucion': 'Universidad Industrial de Santander',
'Hobbie': 'Rugby-yoga'})
tacero = pd.Series({'Nombre':'Tatiana', 'Apellido': 'Acero', 'Especialidad': 'Mecánca Celeste', 'País': 'Colombia',
'Residencia': 'Colombia', 'Edad':23, 'Institucion': 'Universidad Nacional de Colombia',
'Hobbie': 'Cocinar-Senderismo'})
cvelandia = pd.Series({'Nombre':'Cristian', 'Apellido': 'Velandia', 'Especialidad': 'Óptica', 'País': 'Colombia',
'Residencia': 'Colombia', 'Edad':27, 'Institucion': 'Universidad Nacional de Colombia',
'Hobbie': 'Videojuegos'})
jlopez = pd.Series({'Nombre':'José', 'Apellido': 'López', 'Especialidad': 'Física', 'País': 'Venezuela',
'Residencia': 'Caracas', 'Edad':50, 'Institucion': 'Universidad Central de Venezuela',
'Hobbie': 'Excursionismo'})
jpineda = pd.Series({'Nombre':'Juan', 'Apellido': 'Basto', 'Especialidad': 'Astronomía', 'País': 'Colombia',
'Residencia': 'Bucaramanga', 'Edad':37, 'Institucion': 'Universidad Industrial de Santander',
'Hobbie': 'Dibujar-caminatas'})
compas = {'nicole': nhernandez,'jal':jlopez,'juan-pineda':jpineda,'cristian.velandia': cvelandia,
'acerot':tacero,'grasalesj': jgrisales,'fernandezn': nfernandez, 'semprumg': gsemprum,
'malamboj': jmalambo, 'leonl':lleon}
#Crear un DataFrame para mostrar la información tabulada
df = pd.DataFrame(compas)
#Se aplica la traspuesta al DataFrame para que las columnas sean las
#distintas categorias de información y las filas los participantes
df = df.T
def mostrar_info(dataframe, pais):
"""
dataframe: informacón tabulada de todos los participantes
pais: país del cual se quiere obtener la información
"""
return dataframe[dataframe['País']==pais]
#Ejemplo, mostrar todos los participantes de Colombia
mostrar_info(df, 'Colombia')
Nombre | Apellido | Especialidad | País | Residencia | Edad | Institucion | Hobbie | |
---|---|---|---|---|---|---|---|---|
nicole | Nicole | Hernandez | Análisis de imágenes médicas | Colombia | Bucaramanga | 23 | Universidad Industrial de Santander | Pintar-dibujar |
juan-pineda | Juan | Basto | Astronomía | Colombia | Bucaramanga | 37 | Universidad Industrial de Santander | Dibujar-caminatas |
cristian.velandia | Cristian | Velandia | Óptica | Colombia | Colombia | 27 | Universidad Nacional de Colombia | Videojuegos |
acerot | Tatiana | Acero | Mecánca Celeste | Colombia | Colombia | 23 | Universidad Nacional de Colombia | Cocinar-Senderismo |
grasalesj | Jennifer | Grisales | Astropartículas | Colombia | Bucaramanga | 27 | Universidad Industrial de Santander | Rugby-yoga |
malamboj | Jorge | Malambo | Ciencia de Materiales | Colombia | Bogota | 39 | Universidad Nacional de Colombia | Talla en Madera |
#Usando la funcion mean() de pandas para calcular el promedio
promedio_df = df['Edad'].mean()
print("El promedio de edades es:", promedio_df)
El promedio de edades es: 29.9
#Usando la función unique() que se encarga de mostrar los valores de la columna
#del DataFrame sin repetirlos
df['Institucion'].unique()
array(['Universidad Industrial de Santander', 'Universidad Central de Venezuela', 'Universidad Nacional de Colombia', 'Unversidad Nacional Mayor de San Marcos', 'Universidad Nacional Mayor de San Marcos'], dtype=object)