Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG5/Grupo_1_py.ipynb
2714 views
Kernel: Python 3 (ipykernel)
##PARTE 2 (RECORDAR QUE EN LA TAREA NO ESTÁ NUMERADO, SOLO ES PARA INDICAR LA PARTE DE CADA INTEGRANTE PARA ORGANIZARNOS) #Se instalan librerías para poder cargar un archivo .sav (SPSS) !pip install pyreadstat !pip install savReaderWriter
Collecting pyreadstat Downloading pyreadstat-1.1.9-cp39-cp39-win_amd64.whl (2.4 MB) Requirement already satisfied: pandas>=1.2.0 in c:\users\venso\anaconda3\lib\site-packages (from pyreadstat) (1.4.2) Requirement already satisfied: numpy>=1.18.5 in c:\users\venso\anaconda3\lib\site-packages (from pandas>=1.2.0->pyreadstat) (1.21.5) Requirement already satisfied: python-dateutil>=2.8.1 in c:\users\venso\anaconda3\lib\site-packages (from pandas>=1.2.0->pyreadstat) (2.8.2) Requirement already satisfied: pytz>=2020.1 in c:\users\venso\anaconda3\lib\site-packages (from pandas>=1.2.0->pyreadstat) (2021.3) Requirement already satisfied: six>=1.5 in c:\users\venso\anaconda3\lib\site-packages (from python-dateutil>=2.8.1->pandas>=1.2.0->pyreadstat) (1.16.0) Installing collected packages: pyreadstat Successfully installed pyreadstat-1.1.9 Collecting savReaderWriter Downloading savReaderWriter-3.4.2.tar.gz (50.9 MB) Building wheels for collected packages: savReaderWriter Building wheel for savReaderWriter (setup.py): started Building wheel for savReaderWriter (setup.py): still running... Building wheel for savReaderWriter (setup.py): still running... Building wheel for savReaderWriter (setup.py): finished with status 'done' Created wheel for savReaderWriter: filename=savReaderWriter-3.4.2-py3-none-any.whl size=51142028 sha256=77e73541730b42e46e25f8ffc1d73a9e7e213fffb1f2e03be3fc8a5c22092f24 Stored in directory: c:\users\venso\appdata\local\pip\cache\wheels\cb\a1\bf\2b0abba03732dda64bac1510f20b5d34cae4fe071dc0699336 Successfully built savReaderWriter Installing collected packages: savReaderWriter Successfully installed savReaderWriter-3.4.2
#Se instala librería para reconocer las etiquetas de la base de datos !pip install savReaderWriter
Requirement already satisfied: savReaderWriter in c:\users\venso\anaconda3\lib\site-packages (3.4.2)
#Se importan las librerías para cargar el dataframe y para cargar el archivo en cualquier directorio import pandas as pd from pandas import DataFrame,Series import os
#Se indica que se identifique y se coloque el usuario en la dirección donde se encuentra la base de datos a usar user = os.getlogin() # Usuario del dispositivo
os.chdir(f"C:/Users/{user}/Documents/GitHub/1ECO35_2022_2/data") #Se establece el directorio donde se encuentra la base de datos #Se crea un dataframe con la información de la base de datos df = pd.read_spss("data_administrativa.sav") #Se muestra la base de datos df
#Se importa una nueva librería que permite que se puedan reconocer las etiquetas de las variables y de los valores de las variables del data frame import savReaderWriter as sav #Se indica que se lean las etiquedas de la base de datos, y se establecen sus labels de acuerdo a sus variables y a los valores dentro de estas with sav.SavHeaderReader( r"../data/data_administrativa.sav", ioUtf8=True) as header: metadata = header.all() # save dataset labels_df = metadata.valueLabels #Etiquetas de valores de variables var_labels_df = metadata.varLabels #Etiquetas de variables
#Se muestran las variables del dataframe que tengan valores nulos df.isna().any()
year False MES False CONGLOME False VIVIENDA False HOGAR False CODPERSO False UBIGEO False DOMINIO False ESTRATO False P201P False P203 False P203A True P203B True P204 True P205 True P206 True P207 True P208A True P208B True P209 True dtype: bool
#Etiquetas de dos variables #Etiqueta de P203 print('Etiqueta de variable P203 =', var_labels_df['P203']) #Etiqueta de P204 print('Etiqueta de variable P204 =',var_labels_df['P204'])
Etiqueta de variable P203 = ¿Cuál es la relación de parentesco con el jefe(a) del hogar Etiqueta de variable P204 = ¿Es miembro del hogar?
#Etiqueas de los valores de las dos variables print('Etiquetas de valores de variable P203 =', labels_df['P203']) print('Etiquetas de valores de variable P204 =',labels_df['P204'])
Etiquetas de valores de variable 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)'} Etiquetas de valores de variable P204 = {1.0: 'Si', 2.0: 'No'}
##Parte 3 #Se crea un dataframe con los valores duplicados y con el keep = false se indica que se mantengan ambos duplicados df_duplicados = df[ df[['CONGLOME','VIVIENDA', 'HOGAR','CODPERSO']].duplicated(keep = False) ]\ [['year','CONGLOME','VIVIENDA', 'HOGAR','CODPERSO']] #Se indica que se muestren las variables del Indicador por Persona y el año de cada registro
## Parte 4 # Para lograr ordenar el data frame de manera que se identifique a los individuos (con el mismo Conglome y Vivienda) entrevistados en ambos años aplicamos sort_values. # El orden de las columnas indican la prioridad. # Primero, ordenará según coglomerado; luego, según vivienda y, finalmente, según el año. df_ = df_duplicados.sort_values (by = ['CONGLOME', 'VIVIENDA', 'year']) df_
# Parte 5 type(df_['year']) df_2019 = df_.loc[df_['year'] == '2019'] df_2019 df_2020 = df_.loc[df_['year'] == '2020'] df_2020 df_2019.to_stata('../data/df_2019.dta') df_2020.to_stata('../data/df_2020.dta')
df_2019.sort_values (by = ['CONGLOME', 'VIVIENDA'])
df_2020.sort_values (by = ['CONGLOME', 'VIVIENDA'])