Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG5/Grupo2_ tarea 5.py
2714 views
1
#!/usr/bin/env python
2
# coding: utf-8
3
4
# ### Parte de la Tarea 5 - SPPS File
5
6
# In[27]:
7
8
9
pip install pyreadstat
10
11
# Tarea 5 - SPSS File
12
# Integrantes:
13
# Enrique Ríos
14
# Fabio Salas
15
# Amalia Castillo
16
# Angie Quispe
17
18
# Usted debe trabajar una base data_administrativa que está en la carpeta data. Esta base de datos contiene es una encuesta realizado a miembros del hogar durante años años 2019 y 2020.
19
# Mostrar las variables que presentan missing values
20
# Se le pide mostrar las etiquetas de dos variables (var labels) y las etiquetas de los valores en dos variables (value's labels).
21
# 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.
22
# 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.
23
# 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).
24
25
26
# In[29]:
27
28
29
import numpy as np
30
import pandas as pd
31
import os
32
import pyreadstat as py
33
34
user = os.getlogin() # Username
35
36
# Setear directorio
37
38
39
# ### Se importa los datos a analizar
40
41
# In[33]:
42
43
44
os.chdir(f"/Users/enriquerios/Desktop/PUCP 2022.2/R y Python/1ECO35_2022_2/data") # Fijar directoriO
45
46
47
# In[34]:
48
49
50
df,meta=py.read_sav('data_administrativa.sav')
51
52
53
# ### Se revisa la dimensión de la data
54
55
# In[35]:
56
57
58
df.shape
59
60
61
# ### Se evalua los datos faltantes
62
63
# In[36]:
64
65
66
vacios = pd.DataFrame(df.isnull().sum()).sort_values(0,ascending=False)
67
vacios.columns = ['vacios']
68
vacios['vacios%'] = round(vacios['vacios']/df.shape[0], 2)*100
69
vacios # Datos vacios y vacios % en la tabla
70
71
72
# ### Etiquetas de las dos variables: Var labels y values labels
73
74
# #### Primero : Value labels
75
76
# In[37]:
77
78
79
meta.value_labels['labels0'] # Variable geográficaa
80
81
82
# In[38]:
83
84
85
meta.value_labels['labels1'] # variable de habitantes
86
87
88
# #### Segundo: Variable labels
89
90
# In[39]:
91
92
93
meta.variable_value_labels['DOMINIO'] #variable del dominio
94
95
96
# In[40]:
97
98
99
meta.variable_value_labels['ESTRATO'] # ahora es variable denominada estrato
100
101
102
# ### Se procede a detectar y eliminar los duplicados
103
104
# In[41]:
105
106
107
m=df.duplicated(df.columns[~df.columns.isin(['conglome','vivienda','hogar','codperso'])],
108
keep='first')
109
110
111
# In[42]:
112
113
114
m_true=m[m==True]
115
116
117
# #### Se encuentra que NO existen duplicados
118
119
# In[43]:
120
121
122
m_true
123
124
125
# #### Código para borrar duplicados
126
127
# In[44]:
128
129
130
# df = df.drop_duplicates(df.columns[~df.columns.isin(['conglome','vivienda','hogar','codperso'])],
131
# keep='first')
132
# Se agregó el código para borrar duplicados
133
134
135
# ### Creación de dataframe 2019 y 2020
136
137
# In[45]:
138
139
140
df2019=df.copy()
141
df2020=df.copy()
142
143
144
# In[46]:
145
146
147
df2019.drop(df[df['year']=='2020'].index,inplace=True)
148
df2020.drop(df[df['year']=='2019'].index,inplace=True)
149
150
151
# In[47]:
152
153
154
df2019.head()
155
156
157
# In[48]:
158
159
160
df2020.head()
161
162
163
# #### Guardamos la nueva data creada
164
165
# In[49]:
166
167
168
py.write_sav(df2019,'data_2019_2.sav')
169
py.write_sav(df2020,'data_2020_2.sav')
170
171
172
# In[ ]:
173
174
175
176
177
178
# In[ ]:
179
180
181
182
183
184