Path: blob/main/Trabajo_grupal/WG3/Solucion/script_py.py
2835 views
# -*- coding: utf-8 -*-1"""23@author: Roberto4"""567import os # for usernanme y set direcotrio8import pandas as pd9import numpy as np101112user = os.getlogin() # Username1314os.chdir(f"C:/Users/{user}/Documents/GitHub/1ECO35_2022_2/Trabajo_grupal/WG3/Solucion") # Set directorio15161718# a. cargamos la base de datos excel192021junin_data = pd.read_excel(r"../../../data/Region_Junin.xlsx")222324#1. nombre de las variables2526junin_data.columns272829# 2. Tipo de variables y principales estadísticos3031junin_data.info()323334junin_data.describe()353637# 3. Verificar si las columnas presenta missing values3839# cantidad de missing values por cada variable4041junin_data.isna().sum()42434445# 4. Cambio de nombre de las variables4647junin_data.rename(columns = {'Place':'comunidad','men_not_read': 'homxlee',48'women_not_read':'mujerxlee', 'total_not_read':'totalxlee'}, inplace = True)495051# 5. Valores unicos de las vriables comunidad y district5253junin_data['comunidad'].unique()545556junin_data['District'].unique()575859# 6. Variables porcentuales6061junin_data['var1'] = (junin_data['mujerxlee']/junin_data['totalxlee'])*100626364junin_data['var2'] = (junin_data['homxlee']/junin_data['totalxlee'])*100656667# \ permite continuar un codigo extendo en lineas diferentes6869junin_data['var3'] = (junin_data['natives']/(junin_data['peruvian_men']+junin_data['peruvian_women']\70+junin_data['foreign_men']))*100717273# 7. creear base de datos747576junin_data = junin_data[ junin_data["District"].isin(["Ciudad del Cerro",77"Jauja", "Acolla", "San Gerónimo",78"Tarma", "Oroya" , "Concepción"])]7980818283junin_data = junin_data[(junin_data.natives > 0) & (junin_data.mestizos > 0)]848586junin_data.to_csv("../../../data/data.csv")87888990# Reescalar vector y matriz919293def escalar(x):94out = (x - min(x))/(max(x)-min(x))95return out969798list( map(lambda x: escalar(x),99np.arange(50)) )100101102103matrix = np.random.randint(1,1000, 5000).reshape(100,50)104105np.apply_along_axis(lambda x: (x-x.min())/(x.max() - x.min()), 0, matrix)106107108# 3. Keywords en python109110111def keywords( *list_vars, **kwargs):112113114if ( kwargs[ 'function' ] == "escalar" ) :115116# Get the first value117118119result = list( map(lambda x: escalar(x),120list_vars) )121122123elif ( kwargs[ 'function' ] == "estandarizar" ) :124125result = list( map(lambda x: (x - np.mean(x))/np.std(x), list_vars))126127else:128raise ValueError( f"La función {kwargs[ 'function' ]} no se identifica." )129130# Mensaje de error por tipo de argumento131132return result133134135136137keywords( np.arange(10), function = "estandarizar")138139140141keywords( np.arange(10), function = "escalar")142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197