Path: blob/main/Trabajo_grupal/WG3/Grupo_6_py.py
2714 views
# -*- coding: utf-8 -*-1"""2Created on Sat Sep 17 19:29:11 202234@author: HP5"""67#%%8##### PREGUNTA 1 #####9import numpy as np10import pandas as pd11from pandas import DataFrame,Series1213junin_data = pd.read_excel("/Users/lorenzochiroque/Documents/GitHub/1ECO35_2022_2/data/Region_Junin.xlsx") #Dirección mía, pero podremos editarla en base a la ubicación de nuestra base de datos ;p1415junin_data #Abrimos la base de datos, con esto apreciamos todas las columnas "nom. variables" y alunas filas "".16### item 1 -> "Nombre de todas las variables"1718junin_data.head()19print( junin_data.shape ) # filas y columnas2021### item 2 -> "Mostrar el tipo de variables (type) así como presentar los principales estadísticos"2223junin_data.info() # podremos ver el tipo de variable con la que estamos trabajando.24junin_data.describe() #con describe podremos visualizar los principales estadísticos.2526### item 3 -> "Verifique si las columnas presentan missing values".2728junin_data.isna().sum()2930# Podremos ver que todas las variables con un número mayor a 0, poseen algún missing value. Donde claramente indican cuántos missing values presentan. Así, vemos que la variable PLACE es la que posee más.3132### item 4 -> "Cambie el nombre de las variables (place, men_not_read, women_not_read y total_not_read)".3334junin_data.rename(columns = {'Place':'comunidad', 'men_not_read':'homxlee', 'women_not_read':'mujerxlee', 'total_not_read':'totalxlee'}, inplace = True)3536junin_data.info() #confirmamos el cambio de nombre, al ver las variables373839### item 5 -> "Muestre los valores únicos de las siguientes variables (comunidad , District)".40junin_data["comunidad"].unique()41junin_data["District"].unique()4243# # item 6 -> "Crear columnas con la información indicada"4445#Manera 1 de crear: generando las variables gracias a assign y lambda.46junin_data = junin_data.assign(porcentaje_mujerxlee=lambda x: x.mujerxlee / x.totalxlee * 100)47junin_data = junin_data.assign(porcentaje_homxlee=lambda x: x.homxlee / x.totalxlee * 100)48junin_data = junin_data.assign(porcentaje_nativos=lambda x: x.natives / (x.peruvian_men + x.peruvian_women + x.foreign_men + x.foreign_women)*100)4950junin_data5152#Manera 2 de crear: utilizando las variables y dividiendolas directamente.53junin_data['porcentaje_mujerxlee'] = junin_data['mujerxlee'] / junin_data['totalxlee'] * 10054junin_data['porcentaje_homblee'] = junin_data['homxlee'] / junin_data['totalxlee'] * 10055junin_data['porcentaje_nativos'] = junin_data['natives'] / (junin_data['peruvian_men'] + junin_data['peruvian_women'] + junin_data['foreign_men'] + junin_data['foreign_women'])* 1005657junin_data5859### item 7 -> "Crear la base de datos con la información presentada"6061# a. Quedarse con la información de los distritos de Ciudad del Cerro, Jauja, Acolla, San Gerónimo, Tarma, Oroya y Concepción62is_district = (junin_data.District.isin(["ACOLLA","CIUDAD DEL CERRO", "JAUJA", "SAN GERÓNIMO", "TARMA", "OROYA", "CONCEPCIÓN"]))63junin_dataa=junin_data[is_district]64junin_dataa6566# b. Luego quedarse con las comunidades que cuentan con nativos y mestizos.67junin_datab = junin_dataa[(junin_dataa["natives"] > 0) & (junin_dataa["mestizos"] > 0)]68junin_datab6970#c. Solo quedarse con las variables trabajadas en el punto 6), nombre de distrito y comunidad.71junin_datac = junin_datab.loc[:,['District','comunidad']]72junin_datac7374#d. Guardar la base de datos en formato csv en la carpeta data. (Use el siguiente nombre Base_cleaned_WG(numero de grupo)75junin_datac.to_csv("/Users/lorenzochiroque/Documents/GitHub/1ECO35_2022_2/data/Base_cleaned_WG(6).csv")7677#%%78##### PREGUNTA 2 python #####7980import numpy as np8182np.random.seed(500)83np.random.rand(100)8485# Cremos el vector que cuenta con 100 observaciones86vector = np.arange(100)8788# Fijamos el minimo y maximo de nuestro vector89minimo = np.min(vector)90maximo = np.max(vector)9192# Definimos la funcion X93def function(x):9495# Realizamos la reescala para esa funcion.96escalar = (x-min(x))/(max(x)-min(x))97return escalar9899list( map( lambda x: function(x) , vector) )100101# Creamos las variables hasta X4, de modo que todas tienen distribución uniforme102np.random.seed(500)103x1 = np.random.rand(100) # uniform distribution [0,1]104x2 = np.random.rand(100) # uniform distribution [0,1]105x3 = np.random.rand(100) # uniform distribution [0,1]106x4 = np.random.rand(100) # uniform distribution [0,1]107108X = np.column_stack((np.ones(100),x1,x2,x3,x4))109110111np.min(X, axis=0) # axis = 0 (se aplica por columnas)112np.max(X, axis=0)113114#%%115##### PREGUNTA 3 #####116117import numpy as np118import pandas as pd119from pandas import DataFrame, Series120import statistics121import inspect122123# Definiendo la funcion args para la aplicacion de operaciones al vector124def function(*args):125print(args)126for u in args:127print(u)128129# Creando un vector de 6 elementos utilizando la librería numpy130a = np.random.randint(0,20,5)131print(a)132133# Definiendo y Construyendo la función mediante **kwargs134def f(*x,**kwargs):135return (x-np.mean(x))/np.std(x)136for i in a:137print (f(a))138139140141