jjsantos01 / jjsantosoblog

Blog publicado en http://blog.jjsantoso.com
Apache License 2.0
0 stars 0 forks source link

Etiquetado de variables y valores en las encuestas de INEGI usando Python | Blog de Juan Santos #4

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Etiquetado de variables y valores en las encuestas de INEGI usando Python | Blog de Juan Santos

Para entender los datos de encuestas es necesario contar con un diccionario de variables y un catálogo de valores para las variables que se analizan. Organizar esta información puede ser un reto cuando estos metadatos vienen en archivos planos como .csv. Aquí muestro una aplicación usando datos de la ENSU de INEGI.

http://blog.jjsantoso.com/etiquetas-encuestas-inegi/

wilebaldosh commented 3 years ago

Hola. Gracias por compartir.

Estoy tratando de replicar el procedimiento, en Jupyter notebook, pero obtengo este error:

dicc_respuestas = {
    f.split('\\')[1][:-4]: pd.read_csv(f, encoding='latin1', index_col=f.split('\\')[1][:-4])['descrip'].to_dict() for f in archivos_catalogo_respuestas
}
print(str(dicc_respuestas)[:500])
-----------------------------------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-16-697647b2630f> in <module>
----> 1 dicc_respuestas = {
      2     f.split('\\')[1][:-4]: pd.read_csv(f, encoding='latin1', index_col=f.split('\\')[1][:-4])['descrip'].to_dict() for f in archivos_catalogo_respuestas
      3 }
      4 print(str(dicc_respuestas)[:50])

<ipython-input-16-697647b2630f> in <dictcomp>(.0)
      1 dicc_respuestas = {
----> 2     f.split('\\')[1][:-4]: pd.read_csv(f, encoding='latin1', index_col=f.split('\\')[1][:-4])['descrip'].to_dict() for f in archivos_catalogo_respuestas
      3 }
      4 print(str(dicc_respuestas)[:50])

IndexError: list index out of range

¿Alguna idea del por qué? De antemano, muchas gracias!

wilebaldosh commented 3 years ago

Como dato, uso Mac, no sé si sea tema de las barras invertidas u otra cosa.

jjsantos01 commented 3 years ago

Como yo uso Windows, el sistema usa '\' como separador de la ruta del archivo, por ejemplo: 'conjunto_de_datos_CB_ENSU_12_2020/catalogos\BP1_1.csv'. Modifiqué un par de líneas en esa celda y la anterior para que ya no dependa del sistema operativo y funcione igual en todos. Me cuentas si te funciona.

Esto fue lo que cambié:

dir_catalogos = 'conjunto_de_datos_CB_ENSU_12_2020/catalogos/'
archivos_catalogo_respuestas = glob.glob1(dir_catalogos, '*.csv')

dicc_respuestas = {
    f[:-4]: pd.read_csv(f'{dir_catalogos}/{f}', encoding='latin1', index_col=f[:-4])['descrip'].to_dict() for f in archivos_catalogo_respuestas
}

¡Gracias por reportar!

wilebaldosh commented 3 years ago

Increíble!!!! Quedó solucionado. Gracias por compartir!!!!!