Skip to content
Snippets Groups Projects
Commit ae2457a8 authored by Christan Solis Calero's avatar Christan Solis Calero
Browse files

Actualizando tarea desde jupyterhub

parent 6d97c46d
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Alumno: Christian Solis Calero. ## Alumno: Christian Solis Calero.
#### Universidad Nacional Mayor de San Marcos, Lima. Perú #### Universidad Nacional Mayor de San Marcos, Lima. Perú
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Ejercicio 02-03 ## Ejercicio 02-03
01.Entre en contacto con 10 estudiantes del curso de datos y 2 profesores o personal de soporte 01.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 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 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. científica, nombre del instituto en que estudian/laboran, y un hobbie o afición.
02.Cree un diccionario llamado “compas”, donde la llave sea el nombre de usuario en mattermost, 02.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 es y si depliego 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”, a la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”,
“institución”, “hobbie”. “institución”, “hobbie”.
03.Cree una función que reciba como entrada el diccionario y un país de origen, y retorne las 03.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. informaciones completas de todas las personas de ese país, tabuladas en una forma fácil de entender.
04.Busque una forma de calcular, a partir del diccionario, el promedio de edad de 04.Busque una forma de calcular, a partir del diccionario, el promedio de edad de
todas las personas en él, todas las personas en él,
05.Busque una forma de una forma de mostrar todas las instituciones (sin repetición) 05.Busque una forma de una forma de mostrar todas las instituciones (sin repetición)
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
! pip install --user tabulate ! pip install --user tabulate
``` ```
%% Output %% Output
Collecting tabulate Collecting tabulate
Downloading https://files.pythonhosted.org/packages/c4/f4/770ae9385990f5a19a91431163d262182d3203662ea2b5739d0fcfc080f1/tabulate-0.8.7-py3-none-any.whl Downloading https://files.pythonhosted.org/packages/c4/f4/770ae9385990f5a19a91431163d262182d3203662ea2b5739d0fcfc080f1/tabulate-0.8.7-py3-none-any.whl
Installing collected packages: tabulate Installing collected packages: tabulate
 The script tabulate is installed in '/home/solisc/.local/bin' which is not on PATH.  The script tabulate is installed in '/home/solisc/.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. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed tabulate-0.8.7 Successfully installed tabulate-0.8.7
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
import pandas as pd import pandas as pd
from tabulate import tabulate from tabulate import tabulate
#---------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------
#Creando diccionario a partir de la información colectada que esta en una rchivo llamado compas.txt #Creando diccionario a partir de la información colectada que esta en una rchivo llamado compas.txt
compas = {} compas = {}
data={} data={}
filename = "compas.txt" filename = "compas.txt"
start = "\033[1m" start = "\033[1m"
end = "\033[0;0m" end = "\033[0;0m"
with open(filename, encoding='utf8', errors='replace') as f: with open(filename, encoding='utf8', errors='replace') as f:
# file_list = [i.strip() for i in f] # file_list = [i.strip() for i in f]
for line in f: for line in f:
(Username, Nombre, Apellido,Pais,Residencia,Edad,Institucion,Especialidad,Hobbie) = line.split("\t") (Username, Nombre, Apellido,Pais,Residencia,Edad,Institucion,Especialidad,Hobbie) = line.split("\t")
compas[Username]= {'Nombre':Nombre, compas[Username]= {'Nombre':Nombre,
'Apellido':Apellido, 'Apellido':Apellido,
'Pais':Pais, 'Pais':Pais,
'Edad':Edad, 'Edad':Edad,
'Institucion':Institucion, 'Institucion':Institucion,
'Especialidad':Especialidad, 'Especialidad':Especialidad,
'Hobbie':Hobbie} 'Hobbie':Hobbie}
#print(compas[Username]) #print(compas[Username])
```
%% Cell type:code id: tags:
``` python
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
def Read_dictionary(D,I): # función para extraer información de un usuario def Read_dictionary(D,I): # función para extraer información de un usuario
res = {key: D[key] for key in D.keys() res = {key: D[key] for key in D.keys()
& {I}} & {I}}
return res return res
I="cristian.velandia" I="cristian.velandia"
print(start +"El ususario "+I+" presenta la siguiente información"+end) print(start +"El ususario "+I+" presenta la siguiente información"+end)
res=Read_dictionary(compas,I) res=Read_dictionary(compas,I)
for key, value in res.items(): for key, value in res.items():
print(key, '--') print(key, '--')
# print(key, ' : ', value) # print(key, ' : ', value)
# Again iterate over the nested dictionary # Again iterate over the nested dictionary
for p, q in value.items(): for p, q in value.items():
print(p, ' : ', q) print(p, ' : ', q)
```
%% Output
El ususario cristian.velandia presenta la siguiente información
cristian.velandia --
Nombre : Cristian
Apellido : Velandia
Pais : Colombia
Edad : 27
Institucion : Universidad Nacional de Colombia
Especialidad : Optica
Hobbie : Anime, videojuegos
%% Cell type:code id: tags:
``` python
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
def Read_countries(D,I): # función para extraer información de usuarios de un pais def Read_countries(D,I): # función para extraer información de usuarios de un pais
res1 = [D[Username] for Username in D.keys() if D[Username]['Pais']==I] res1 = [D[Username] for Username in D.keys() if D[Username]['Pais']==I]
return res1 return res1
I='Colombia' I='Colombia'
print(start +"Los usuarios de "+I+" son"+end) print(start +"Los usuarios de "+I+" son"+end)
res1=Read_countries(compas,I) res1=Read_countries(compas,I)
i=0 i=0
for n in res1: for n in res1:
print(res1[i]) print(res1[i])
i=i+1 i=i+1
print(start +"La misma información tabulada"+end) print(start +"La misma información tabulada"+end)
df = pd.DataFrame(res1) df = pd.DataFrame(res1)
#print(tabulate(df, headers='keys', tablefmt='psql')) #print(tabulate(df, headers='keys', tablefmt='psql'))
print(df.to_markdown()) print(df.to_markdown())
```
%% Output
Los usuarios de Colombia son
{'Nombre': 'Cristian', 'Apellido': 'Velandia', 'Pais': 'Colombia', 'Edad': '27', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'Optica', 'Hobbie': ' Anime, videojuegos\n'}
{'Nombre': 'Tatiana', 'Apellido': 'Acero', 'Pais': 'Colombia', 'Edad': '22', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'Mec�nica Celeste Relativista', 'Hobbie': 'varios\n'}
{'Nombre': 'Alfonso', 'Apellido': 'Navas', 'Pais': 'Colombia', 'Edad': '31', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'sistemas complejos', 'Hobbie': 'el entrenamiento de fuerza y dar paseos en bicicleta\n'}
{'Nombre': 'Sasiri Vargas', 'Apellido': 'Colombia', 'Pais': 'Colombia', 'Edad': '27', 'Institucion': 'Universidad del Valle', 'Especialidad': 'programaci�n y simulaciones', 'Hobbie': 'bailar\n'}
{'Nombre': 'David Ramos', 'Apellido': 'Colombia', 'Pais': 'Colombia', 'Edad': '24', 'Institucion': 'Universidad Industrial de Santander', 'Especialidad': 'Estad�stica y f�sica estad�stica', 'Hobbie': 'Escuchar y tocar m�sica rock.\n'}
{'Nombre': 'David', 'Apellido': 'Hern�ndez', 'Pais': 'Colombia', 'Edad': '29', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'Campos y part�culas', 'Hobbie': 'varios\n'}
{'Nombre': 'Fabiola', 'Apellido': 'Amazo', 'Pais': 'Colombia', 'Edad': '22', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'F�sica Nuclear', 'Hobbie': 'Varios'}
La misma información tabulada
| | Nombre | Apellido | Pais | Edad | Institucion | Especialidad | Hobbie |
|---:|:--------------|:-----------|:---------|-------:|:------------------------------------|:---------------------------------|:-----------------------------------------------------|
| 0 | Cristian | Velandia | Colombia | 27 | Universidad Nacional de Colombia | Optica | Anime, videojuegos |
| 1 | Tatiana | Acero | Colombia | 22 | Universidad Nacional de Colombia | Mec�nica Celeste Relativista | varios |
| 2 | Alfonso | Navas | Colombia | 31 | Universidad Nacional de Colombia | sistemas complejos | el entrenamiento de fuerza y dar paseos en bicicleta |
| 3 | Sasiri Vargas | Colombia | Colombia | 27 | Universidad del Valle | programaci�n y simulaciones | bailar |
| 4 | David Ramos | Colombia | Colombia | 24 | Universidad Industrial de Santander | Estad�stica y f�sica estad�stica | Escuchar y tocar m�sica rock. |
| 5 | David | Hern�ndez | Colombia | 29 | Universidad Nacional de Colombia | Campos y part�culas | varios |
| 6 | Fabiola | Amazo | Colombia | 22 | Universidad Nacional de Colombia | F�sica Nuclear | Varios |
%% Cell type:code id: tags:
``` python
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
def Read_age(D): # función para extraer información de edad de usuarios def Read_age(D): # función para extraer información de edad de usuarios
res2 = [D[Username]["Edad"] for Username in D.keys()] res2 = [D[Username]["Edad"] for Username in D.keys()]
return res2 return res2
res2=Read_age(compas) res2=Read_age(compas)
res2=[float(i) for i in res2] res2=[float(i) for i in res2]
average=sum(res2)/len(res2) average=sum(res2)/len(res2)
print(start +"La edad promedio de los usuarios registrados es:"+end) print(start +"La edad promedio de los usuarios registrados es:"+end)
print(average) print(average)
```
%% Output
La edad promedio de los usuarios registrados es:
26.666666666666668
%% Cell type:code id: tags:
``` python
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
def Read_institutions(D): # función para extraer información de instituciones sin redundancia def Read_institutions(D): # función para extraer información de instituciones sin redundancia
res3 = [D[Username]["Institucion"] for Username in D.keys()] res3 = [D[Username]["Institucion"] for Username in D.keys()]
res3 = list(set(res3)) #Se crea un conjunto a partir de una lista(conjuntos no tienen redundancia) res3 = list(set(res3)) #Se crea un conjunto a partir de una lista(conjuntos no tienen redundancia)
return res3 return res3
res3=Read_institutions(compas) res3=Read_institutions(compas)
print(start +"Esta es la lista de instituciones de los usuarios"+end) print(start +"Esta es la lista de instituciones de los usuarios"+end)
print(*res3, sep = "\n") print(*res3, sep = "\n")
``` ```
%% Output %% Output
El ususario cristian.velandia presenta la siguiente información
cristian.velandia --
Nombre : Cristian
Apellido : Velandia
Pais : Colombia
Edad : 27
Institucion : Universidad Nacional de Colombia
Especialidad : Optica
Hobbie : Anime, videojuegos
Los usuarios de Colombia son
{'Nombre': 'Cristian', 'Apellido': 'Velandia', 'Pais': 'Colombia', 'Edad': '27', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'Optica', 'Hobbie': ' Anime, videojuegos\n'}
{'Nombre': 'Tatiana', 'Apellido': 'Acero', 'Pais': 'Colombia', 'Edad': '22', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'Mec�nica Celeste Relativista', 'Hobbie': 'varios\n'}
{'Nombre': 'Alfonso', 'Apellido': 'Navas', 'Pais': 'Colombia', 'Edad': '31', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'sistemas complejos', 'Hobbie': 'el entrenamiento de fuerza y dar paseos en bicicleta\n'}
{'Nombre': 'Sasiri Vargas', 'Apellido': 'Colombia', 'Pais': 'Colombia', 'Edad': '27', 'Institucion': 'Universidad del Valle', 'Especialidad': 'programaci�n y simulaciones', 'Hobbie': 'bailar\n'}
{'Nombre': 'David Ramos', 'Apellido': 'Colombia', 'Pais': 'Colombia', 'Edad': '24', 'Institucion': 'Universidad Industrial de Santander', 'Especialidad': 'Estad�stica y f�sica estad�stica', 'Hobbie': 'Escuchar y tocar m�sica rock.\n'}
{'Nombre': 'David', 'Apellido': 'Hern�ndez', 'Pais': 'Colombia', 'Edad': '29', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'Campos y part�culas', 'Hobbie': 'varios\n'}
{'Nombre': 'Fabiola', 'Apellido': 'Amazo', 'Pais': 'Colombia', 'Edad': '22', 'Institucion': 'Universidad Nacional de Colombia', 'Especialidad': 'F�sica Nuclear', 'Hobbie': 'Varios'}
La misma información tabulada
| | Nombre | Apellido | Pais | Edad | Institucion | Especialidad | Hobbie |
|---:|:--------------|:-----------|:---------|-------:|:------------------------------------|:---------------------------------|:-----------------------------------------------------|
| 0 | Cristian | Velandia | Colombia | 27 | Universidad Nacional de Colombia | Optica | Anime, videojuegos |
| 1 | Tatiana | Acero | Colombia | 22 | Universidad Nacional de Colombia | Mec�nica Celeste Relativista | varios |
| 2 | Alfonso | Navas | Colombia | 31 | Universidad Nacional de Colombia | sistemas complejos | el entrenamiento de fuerza y dar paseos en bicicleta |
| 3 | Sasiri Vargas | Colombia | Colombia | 27 | Universidad del Valle | programaci�n y simulaciones | bailar |
| 4 | David Ramos | Colombia | Colombia | 24 | Universidad Industrial de Santander | Estad�stica y f�sica estad�stica | Escuchar y tocar m�sica rock. |
| 5 | David | Hern�ndez | Colombia | 29 | Universidad Nacional de Colombia | Campos y part�culas | varios |
| 6 | Fabiola | Amazo | Colombia | 22 | Universidad Nacional de Colombia | F�sica Nuclear | Varios |
La edad promedio de los usuarios registrados es:
26.666666666666668
Esta es la lista de instituciones de los usuarios Esta es la lista de instituciones de los usuarios
Universidad Nacional de Colombia
Universidad Industrial de Santander
Universidad Nacional del Altiplano Puno
Universidad Nacional de Ingenier�a de Lima
Universidad Central de Venezuela Universidad Central de Venezuela
Universidad del Valle
Universidad Nacional MAyor de San marcos Universidad Nacional MAyor de San marcos
Universidad del Valle
Universidad Nacional del Altiplano Puno
Universidad Industrial de Santander
Universidad Nacional de Colombia
Universidad Nacional de Ingenier�a de Lima
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
``` ```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment