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