"* Entre en contacto con 10 estudiantes del curso de datos y 2 profesores o personal de soporte de LaConga, uno del curso de datos y otro de afuera, y consulte su nombre completo, su nombre de usuario en mattermost, edad, pais de origen, ciudad donde residen, su especialidad científica, nombre del instituto en que estudian/laboran, y un hobbie o afición.\n",
"\n",
"\n",
"* Cree un diccionario llamado “compas”, donde la llave sea el nombre de usuario en mattermost, y si depliego el valor almacenado, por ejemplo en compas[“juan-pineda”], lo que obtengo esa la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”,“institución”, “hobbie”.\n",
"\n",
"\n",
"* Cree una función que reciba como entrada el diccionario y un país de origen, y retorne las informaciones completas de todas las personas de ese país, tabuladas en una forma fácil de entender. -Busque una forma de calcular, a partir del diccionario, el promedio de edad detodas las personas en él, y una forma de mostrar todas las instituciones (sin repetición)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"No hemos visto pandas, pero soy re fan de la librería"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Siglas de las universidades"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"universidades = {'UNAL': 'Universidad Nacional de Colombia',\n",
" 'UCV': 'Universidad Central de Venezuela',\n",
" 'UNMSM': 'Universidad Nacional Mayor de San Marcos',\n",
" 'LAPP': 'Laboratoire d’Annecy de Physique des Particules',\n",
" 'univ-tlse3': 'Université Paul Sabatier',\n",
" 'UIS': 'Universidad Industrial de Santander',\n",
" 'UV':'Universidad del Valle',\n",
" 'UNI':'Universidad Nacional de Ingeniería'}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Crear diccionario 'compas' con la información recopilada"
"Función que recibe un diccionario y un país y retorna un Dataframe de las personas que residen en ese pais. Las columnas son las características/información de la persona.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def amigos_congueros(dicci, pais):\n",
" '''\n",
" Función que recibe un diccionario y un país y retorna un Dataframe de las personas que\n",
" residen en ese pais. Las columnas son las características/información de la persona.\n",
" '''\n",
" # -- inicializar una lista vacia para guardar los datos finales\n",
" ha = []\n",
" # -- iterar sobre el diccionario\n",
" for i in dicci:\n",
" # -- usar minúsculas, toca tener cuidado con acentos\n",
" if dicci[i]['residencia'].lower() == pais.lower():\n",
" # -- gudardar en la lista la informacion de la persona que esta en el pais\n",
" ha.append(dicci[i])\n",
" # -- si la lista no tiene elementos, no hay compas en ese pais\n",
" if len(ha) == 0:\n",
" print('No hay compañeros de ese país')\n",
" # -- convertir la lista en un dataframe, para que vea ordenado\n",
" return pd.DataFrame(ha)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nombre</th>\n",
" <th>apellido</th>\n",
" <th>residencia</th>\n",
" <th>edad</th>\n",
" <th>institución</th>\n",
" <th>especialidad</th>\n",
" <th>hobbie</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Andrea Carolina</td>\n",
" <td>Tugores Hernández</td>\n",
" <td>Venezuela</td>\n",
" <td>24</td>\n",
" <td>UCV</td>\n",
" <td>Física médica</td>\n",
" <td>Tenis</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Daniel Arturo</td>\n",
" <td>Brito Urbina</td>\n",
" <td>Venezuela</td>\n",
" <td>26</td>\n",
" <td>UCV</td>\n",
" <td>Teorías de Campos</td>\n",
" <td>Patinetas, Bicicletas, Videojuegos</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" nombre apellido residencia edad institución \\\n",
"0 Andrea Carolina Tugores Hernández Venezuela 24 UCV \n",
"1 Daniel Arturo Brito Urbina Venezuela 26 UCV \n",
"\n",
" especialidad hobbie \n",
"0 Física médica Tenis \n",
"1 Teorías de Campos Patinetas, Bicicletas, Videojuegos "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# -- compas en venezuela\n",
"ej1 = amigos_congueros(compas, 'venezuela')\n",
"ej1"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>nombre</th>\n",
" <th>apellido</th>\n",
" <th>residencia</th>\n",
" <th>edad</th>\n",
" <th>institución</th>\n",
" <th>especialidad</th>\n",
" <th>hobbie</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Tatiana</td>\n",
" <td>Acero Cuellar</td>\n",
" <td>Colombia</td>\n",
" <td>23</td>\n",
" <td>UNAL</td>\n",
" <td>Mecánica Celeste Relativista</td>\n",
" <td>Anime</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Alfonso</td>\n",
" <td>Navas</td>\n",
" <td>Colombia</td>\n",
" <td>24</td>\n",
" <td>UNAL</td>\n",
" <td>Física de sistemas complejos, Ecología</td>\n",
" <td>Crossfit</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Juan David</td>\n",
" <td>Hernández</td>\n",
" <td>Colombia</td>\n",
" <td>24</td>\n",
" <td>UNAL</td>\n",
" <td>Electrodinámica cuántica</td>\n",
" <td>Leer, Videojuegos</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Sebastian</td>\n",
" <td>Ordoñez</td>\n",
" <td>Colombia</td>\n",
" <td>22</td>\n",
" <td>UNAL</td>\n",
" <td>Física de partículas experimentales</td>\n",
"# -- para determinar las instituciones sin repetir, convertirmos la lista en un conjunto\n",
"siglas = set(insti)\n",
"siglas"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Las insituciones en las que estan vinculados los compas son: \n",
" [('UCV', 'Universidad Central de Venezuela'), ('UNMSM', 'Universidad Nacional Mayor de San Marcos'), ('UV', 'Universidad del Valle'), ('UIS', 'Universidad Industrial de Santander'), ('LAPP', 'Laboratoire d’Annecy de Physique des Particules'), ('UNAL', 'Universidad Nacional de Colombia'), ('univ-tlse3', 'Université Paul Sabatier')]\n"
]
}
],
"source": [
"# -- buscamos el nombre completo de acuerdo a la sigla\n",
"insituciones = [(i, universidades[i]) for i in siglas]\n",
"print('Las insituciones en las que estan vinculados los compas son: \\n {}'.format(insituciones))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
%% Cell type:markdown id: tags:
# Tatiana Acero Cuellar
## Universidad Nacional de Colombia
### Ejercicios semana 2
%% Cell type:markdown id: tags:
# Ejercicio No. 3 - Amigos congueros
* Entre en contacto con 10 estudiantes del curso de datos y 2 profesores o personal de soporte de LaConga, uno del curso de datos y otro de afuera, y consulte su nombre completo, su nombre de usuario en mattermost, edad, pais de origen, ciudad donde residen, su especialidad científica, nombre del instituto en 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 depliego el valor almacenado, por ejemplo en compas[“juan-pineda”], lo que obtengo esa 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 las personas de ese país, tabuladas en una forma fácil de entender. -Busque una forma de calcular, a partir del diccionario, el promedio de edad detodas las personas en él, y una forma de mostrar todas las instituciones (sin repetición)
%% Cell type:markdown id: tags:
No hemos visto pandas, pero soy re fan de la librería
%% Cell type:code id: tags:
``` python
importnumpyasnp
importpandasaspd
```
%% Cell type:markdown id: tags:
Siglas de las universidades
%% Cell type:code id: tags:
``` python
universidades={'UNAL':'Universidad Nacional de Colombia',
'UCV':'Universidad Central de Venezuela',
'UNMSM':'Universidad Nacional Mayor de San Marcos',
'LAPP':'Laboratoire d’Annecy de Physique des Particules',
'univ-tlse3':'Université Paul Sabatier',
'UIS':'Universidad Industrial de Santander',
'UV':'Universidad del Valle',
'UNI':'Universidad Nacional de Ingeniería'}
```
%% Cell type:markdown id: tags:
## Crear diccionario 'compas' con la información recopilada
%% Cell type:code id: tags:
``` python
compas={'acerot':
{'nombre':'Tatiana',
'apellido':'Acero Cuellar',
'residencia':'Colombia',
'edad':'23',
'institución':'UNAL',
'especialidad':'Mecánica Celeste Relativista',
'hobbie':'Anime'},
'andreatugores':
{'nombre':'Andrea Carolina',
'apellido':'Tugores Hernández',
'residencia':'Venezuela',
'edad':'24',
'institución':'UCV',
'especialidad':'Física médica',
'hobbie':'Tenis'},
'navasa':
{'nombre':'Alfonso',
'apellido':'Navas',
'residencia':'Colombia',
'edad':'24',
'institución':'UNAL',
'especialidad':'Física de sistemas complejos, Ecología',
'hobbie':'Crossfit'},
'fernandezn':
{'nombre':'Nicolás',
'apellido':'Fernández Cinquepalmi',
'residencia':'Perú',
'edad':'27',
'institución':'UNMSM',
'especialidad':'Física nuclear',
'hobbie':'Música'},
'arturos':
{'nombre':'Arturo',
'apellido':'Sanchez',
'residencia':'Suiza',
'edad':'34',
'institución':'LAPP',
'especialidad':'Física y Computación',
'hobbie':'Bicicleta'},
'pierre_r_pujol':
{'nombre':'Pierre',
'apellido':'Pujol',
'residencia':'Francia',
'edad':'52',
'institución':'univ-tlse3',
'especialidad':'Física teórica',
'hobbie':'Fotografía'},
'britod':
{'nombre':'Daniel Arturo',
'apellido':' Brito Urbina',
'residencia':'Venezuela',
'edad':'26',
'institución':'UCV',
'especialidad':'Teorías de Campos',
'hobbie':'Patinetas, Bicicletas, Videojuegos'},
'hernandezj':
{'nombre':'Juan David',
'apellido':' Hernández',
'residencia':'Colombia',
'edad':'24',
'institución':'UNAL',
'especialidad':'Electrodinámica cuántica',
'hobbie':'Leer, Videojuegos'},
'ordonezs':
{'nombre':'Sebastian',
'apellido':' Ordoñez',
'residencia':'Colombia',
'edad':'22',
'institución':'UNAL',
'especialidad':'Física de partículas experimentales',
Función que recibe un diccionario y un país y retorna un Dataframe de las personas que residen en ese pais. Las columnas son las características/información de la persona.
%% Cell type:code id: tags:
``` python
defamigos_congueros(dicci,pais):
'''
Función que recibe un diccionario y un país y retorna un Dataframe de las personas que
residen en ese pais. Las columnas son las características/información de la persona.
'''
# -- inicializar una lista vacia para guardar los datos finales
ha=[]
# -- iterar sobre el diccionario
foriindicci:
# -- usar minúsculas, toca tener cuidado con acentos
ifdicci[i]['residencia'].lower()==pais.lower():
# -- gudardar en la lista la informacion de la persona que esta en el pais
ha.append(dicci[i])
# -- si la lista no tiene elementos, no hay compas en ese pais
iflen(ha)==0:
print('No hay compañeros de ese país')
# -- convertir la lista en un dataframe, para que vea ordenado
returnpd.DataFrame(ha)
```
%% Cell type:code id: tags:
``` python
# -- compas en venezuela
ej1=amigos_congueros(compas,'venezuela')
ej1
```
%% Output
nombre apellido residencia edad institución \
0 Andrea Carolina Tugores Hernández Venezuela 24 UCV
1 Daniel Arturo Brito Urbina Venezuela 26 UCV
especialidad hobbie
0 Física médica Tenis
1 Teorías de Campos Patinetas, Bicicletas, Videojuegos
%% Cell type:code id: tags:
``` python
# -- compas en colombia
ej2=amigos_congueros(compas,'colombia')
ej2
```
%% Output
nombre apellido residencia edad institución \
0 Tatiana Acero Cuellar Colombia 23 UNAL
1 Alfonso Navas Colombia 24 UNAL
2 Juan David Hernández Colombia 24 UNAL
3 Sebastian Ordoñez Colombia 22 UNAL
4 Jennifer Grisales Casadiegos Colombia 27 UIS
5 Jose Miguel Ladino Méndez Colombia 24 UNAL
6 Felipe Reyes Osorio Colombia 22 UV
7 Jorge Enrique Malambo Martinez Colombia 39 UNAL
8 Cristian Velandia Colombia 27 UNAL
especialidad hobbie
0 Mecánica Celeste Relativista Anime
1 Física de sistemas complejos, Ecología Crossfit
2 Electrodinámica cuántica Leer, Videojuegos
3 Física de partículas experimentales Leer, hiking
# -- buscamos el nombre completo de acuerdo a la sigla
insituciones=[(i,universidades[i])foriinsiglas]
print('Las insituciones en las que estan vinculados los compas son: \n {}'.format(insituciones))
```
%% Output
Las insituciones en las que estan vinculados los compas son:
[('UCV', 'Universidad Central de Venezuela'), ('UNMSM', 'Universidad Nacional Mayor de San Marcos'), ('UV', 'Universidad del Valle'), ('UIS', 'Universidad Industrial de Santander'), ('LAPP', 'Laboratoire d’Annecy de Physique des Particules'), ('UNAL', 'Universidad Nacional de Colombia'), ('univ-tlse3', 'Université Paul Sabatier')]