Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG5/Grupo_4_jupyter.ipynb
2714 views
Kernel: Python 3 (ipykernel)

Work Group 5 - Grupo 4

Integrantes:

Luana Morales - 20191240

Flavia Oré - 20191215

Marcela Quintero - 20191445

Seidy Ascencios - 20191622

#------------------------------------------------------------------------------# # # # PREGUNTA 2 - SPSS file # # # #------------------------------------------------------------------------------# import numpy as np import pandas as pd from pandas import DataFrame,Series # Usaremos el siguiente comando para poder leer la base de datos en formato spss: !pip install pyreadstat
Requirement already satisfied: pyreadstat in d:\anaconda\lib\site-packages (1.1.9) Requirement already satisfied: pandas>=1.2.0 in d:\anaconda\lib\site-packages (from pyreadstat) (1.2.4) Requirement already satisfied: python-dateutil>=2.7.3 in d:\anaconda\lib\site-packages (from pandas>=1.2.0->pyreadstat) (2.8.1) Requirement already satisfied: numpy>=1.16.5 in d:\anaconda\lib\site-packages (from pandas>=1.2.0->pyreadstat) (1.20.1) Requirement already satisfied: pytz>=2017.3 in d:\anaconda\lib\site-packages (from pandas>=1.2.0->pyreadstat) (2021.1) Requirement already satisfied: six>=1.5 in d:\anaconda\lib\site-packages (from python-dateutil>=2.7.3->pandas>=1.2.0->pyreadstat) (1.15.0)
# Y el siguiente para abrir y guardar en formato spss: !pip install savReaderWriter
Requirement already satisfied: savReaderWriter in d:\anaconda\lib\site-packages (3.4.2)
# Cargamos la base de datos: user = os.getlogin() # Username os.chdir(f"C:/Users/{user}/Documents/GitHub/1ECO35_2022_2/Lab4") df = pd.read_spss("../data/data_administrativa.sav")
# Observamos la base cargada: df
# Mostrar las variables que presentan missing values: df.isnull() # En las variables que presenten "True", existen missing values.
# Para contar la cantidad de missing values hacemos: df.isnull().sum() #Las varibles P203A, P203B, P204, P205, P206, P207,P208A, P208B y P209 son las que presentan missing values.
year 0 MES 0 CONGLOME 0 VIVIENDA 0 HOGAR 0 CODPERSO 0 UBIGEO 0 DOMINIO 0 ESTRATO 0 P201P 0 P203 0 P203A 22795 P203B 22795 P204 2349 P205 4904 P206 82480 P207 2349 P208A 2349 P208B 84038 P209 19016 dtype: int64
# Se le pide mostrar las etiquetas de dos variables (var labels) y las etiquetas de los valores en dos variables (value's labels). import savReaderWriter as sav # Importar sav (package) with sav.SavHeaderReader("C:/Users/Flavia/Documents/GitHub/1ECO35_2022_2/data/data_administrativa.sav", ioUtf8=True) as header: metadata = header.all() # save dataset labels_df = metadata.valueLabels # get labels from varaibles variables's values var_labels_df = metadata.varLabels # get labels from variables
#Visualizamos las etiquetas: print(labels_df) print (var_labels_df)
{'DOMINIO': {1.0: 'Costa Norte', 2.0: 'Costa Centro', 3.0: 'Costa Sur', 4.0: 'Sierra Norte', 5.0: 'Sierra Centro', 6.0: 'Sierra Sur', 7.0: 'Selva', 8.0: 'Lima Metropolitana'}, 'ESTRATO': {1.0: ' De 500 000 a más habitantes', 2.0: ' De 100 000 a 499 999 habitantes', 3.0: ' De 50 000 a 99 999 habitantes', 4.0: ' De 20 000 a 49 999 habitantes', 5.0: 'De 2 000 a 19 999 habitantes', 6.0: ' De 500 a 1 999 habitantes', 7.0: ' Área de Empadronamiento Rural (AER) Compuesto', 8.0: ' Área de Empadronamiento Rural (AER) Simple'}, 'P203': {0.0: 'Panel', 1.0: 'Jefe/Jefa', 2.0: 'Esposo(a)/compañero(a)', 3.0: 'Hijo(a)/Hijastro(a)', 4.0: 'Yerno/Nuera', 5.0: 'Nieto(a)', 6.0: 'Padres/Suegros', 7.0: 'Otros parientes', 8.0: 'Trabajador Hogar', 9.0: 'Pensionista', 10.0: 'Otros no parientes', 11.0: 'Hermano(a)'}, 'P203B': {1.0: 'Jefe/jefa de hogar', 2.0: 'Esposa(o)', 3.0: 'Hijo(a)', 6.0: 'Padres/suegros'}, 'P204': {1.0: 'Si', 2.0: 'No'}, 'P205': {1.0: 'Si', 2.0: 'No'}, 'P206': {1.0: 'Si', 2.0: 'No'}, 'P207': {1.0: 'Hombre', 2.0: 'Mujer'}, 'P209': {1.0: 'Conviviente', 2.0: 'Casado(a)', 3.0: 'Viudo(a)', 4.0: 'Divorciado(a)', 5.0: 'Separado(a)', 6.0: 'Soltero(a)'}} {'year': '', 'MES': '', 'CONGLOME': '', 'VIVIENDA': '', 'HOGAR': '', 'CODPERSO': '', 'UBIGEO': '', 'DOMINIO': 'Dominio geográfico', 'ESTRATO': 'Estrato geográfico', 'P201P': '', 'P203': '¿Cuál es la relación de parentesco con el jefe(a) del hogar', 'P203A': '', 'P203B': 'Relación de parentesco con el jefe(a) del núcleo familiar', 'P204': '¿Es miembro del hogar?', 'P205': '¿Se encuentra ausente del hogar 30 días o más?', 'P206': '¿Está presente en el hogar 30 días o más?', 'P207': 'Sexo', 'P208A': '', 'P208B': '', 'P209': '¿Cuál es su estado civil o conyugal?'}
labels_df['P207'] #<- "Sexo"
{1.0: 'Hombre', 2.0: 'Mujer'}
labels_df['P204'] #<- "¿Es miembro del hogar?"
{1.0: 'Si', 2.0: 'No'}
var_labels_df['P203'] #<- "¿Cuál es la relación de parentesco con el jefe(a) del hogar"
'¿Cuál es la relación de parentesco con el jefe(a) del hogar'
var_labels_df['P206'] #<- "¿Está presente en el hogar 30 días o más?"
'¿Está presente en el hogar 30 días o más?'
# Se le pide detectar personas que fueran entrevistadas en ambos años. # Para ello, se pide detectar duplicados a partir del identificador por persona : conglome, vivienda, # hogar y codperso. df[ df.loc[:, ['CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO']].duplicated(keep = False) ]\ [['CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO']] # Keep = False muestra las variables duplicadas
df[ df.loc[:, ['CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO']].duplicated() ]
df[ df.loc[:, ['CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO']].duplicated( keep="first") ]
df[ df.loc[:, ['CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO']].duplicated( keep="last") ]
df_no_dpl = df[ ~ df.loc[:, ['CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO']].duplicated() ].copy() df_no_dpl
# Ordene la base de datos a partir de las variables que identifican cada miembro y la variable de año (year). # Así podrá observar a cada individuo en ambos años. df_no_dpl.groupby( [ 'P201P','CONGLOME' ,'VIVIENDA' , 'HOGAR' ,'CODPERSO'])[['year']].sum()
# Finalmente crear una base de datos para cada año # y guardar en la carpeta data con los siguientes nombres data_2019_(numero de grupo) y data_2020_(numero de grupo). import datetime as dt
data_2019_grupo4 =df_no_dpl['year']==2019 print(data_2019_grupo4)
0 False 1 False 2 False 3 False 4 False ... 85030 False 85031 False 85032 False 85033 False 85034 False Name: year, Length: 80900, dtype: bool
data_2020_grupo4 =df_no_dpl['year']==2020 print(data_2020_grupo4)
0 False 1 False 2 False 3 False 4 False ... 85030 False 85031 False 85032 False 85033 False 85034 False Name: year, Length: 80900, dtype: bool
# Guardamos las bases de datos creadas
write_sav(data_trabajada2019 , "../data/data_2019_grupo4.sav") write_sav(data_trabajada2020 , "../data/data_2020_grupo4.sav")
File "<ipython-input-116-da102ab91e68>", line 3 import packages("haven") ^ SyntaxError: invalid syntax