Package: unblind
UnblindProtecto para el Datatón anticorrupción 2022 ✨.Descripción 📄Librería en Python 🐍 que ayuda en el tratamiento de datos, creación de visualizaciones, y desarrollo de modelos predictivos, para los datos de la Plataforma Digital Nacional. También se creó una página web dinámica con ayuda destreamlit(Véase la rama destreamlit).Requerimientos para el paquete 📦python 3.8+python-envUsa la librería 👀Para usar esta librería solamente tiene que hacer:pip install unblind¡Y Listo! Ahora puedes trabajar con datos de la PDN de manera más clara y sencilla, nos encargamos del procesamiento de datos por ti 😉.Si eres developer y te interesa aportar, a continuación hay cosas que te interesan.Estructura de carpetas 📁A continuación ser verá la estructura de carpetas utilizada en nuestro proyecto así como las descripciones de cada uno de los archivos..
├── data
│   └── process_data
├── unblind
│   ├── __init__.py
│   ├── dataviz.py
│   ├── etl.py
│   └── utils.py
├── LICENSE
├── README.md
├── pyproject.toml
├── requirements.txt
└── setup.pydata: Carpeta que guarda todos los datos que son utilizados para los análisis y graficas.process_data: Los datos de laPDNprocesados por nuestro módulounblind.unblind: Carpeta que alberga todo el código y lógica del paquete.dataviz.py: Script donde se encuentra toda la lógica de la visualización de datos para el paquete.etl.py: Script de Python donde está todo lo que tiene que ver con Extracción, Transformación y Carga de los datos para ser utilizados de manera más sencilla y comprensible (sirve mucho para encontrar errores).utils.py: Script que contiene funciones"helpers"que ayudan en la obtención de datos a partir de la API de la PDN.Setup 🛠Para poder correr el código del paquete y ser capaz de hacer cambios en él, se necesitará seguir los siguientes pasos.¡Haz fork al repositorio!Clona tu repositorio (sustituye la URL de abajo por la URL de tu fork)gitclonehttps://github.com/Dataket/unblind.gitcdunblindCrea un ambiente de trabajo con Python-envpython-mvenvvenvy actívalo con# IOSsourcevenv/bin/activateo con conda de la siguiente maneracondacreate-nunblind-envy actívalo con:condaactivateunblind-envInstala las librerías requeridas:pipinstall-rrequirements.txtY ahora puedes testear todas estas funcionalidades en un notebook, script o lo que quieras necesites.Ejemplo de uso 🔎Vamos a aprender cómo hacer una visualización para el Sistema 2 de la PDN:Importamos la librería y definimos los caminos:# Se importa el módulo unblindfromunblindimportutils,etl,dataviz# Se define el path de trabajoworking_path='/working_path/'root_path=working_path+'data/'pdn_system='s2'Descargamos los archivos de los sistemas de la PDN:# Se descargan los sistemas de la PDNutils.get_datasets(to_path=root_path)Extraemos y tratamos los datos que nos interesan:# Se definen las palabras clave que nos interesa tomar del Sistema 2keywords=['Procedimiento']# Se define el objeto de extracción de datos y se realiza la extracción de datosextraction=etl.FeatureEngineering(pdn_system=pdn_system,root_path=root_path,keywords=keywords,metadata_columns=[])extraction.extractData('extracted_data')# Posteriormente se realiza la normalización de la tabla para evitar traer listas o diccionarios dentro de la extracciónextraction.normalizeData('extracted_data','normalized')# Se sustituyen los valores missings por un ceroextraction.missingData(0,'normalized_data','missing_data')# Se guarda la tablaextraction.tables['missing_data'].to_csv(root_path+system+'/ut_ug_m_data.csv',index=False)# El nombre es por Un-Tokenized + Un-Grouped + Missing-treated dataCreamos la visualización:# Una vez que ya tenemos guardado el csv tratado, podemos definir la clase de visualizacionesdataviz=dataviz.DataViz(pdn_system=pdn_system,root_path=root_path)# Realizamos nuestra primer gráficafile_path='ut_ug_m'# Es el nombre del archivo que guardamos, en al convensión que usamos pero sin el sufijo '_data.csv'dataviz.createGraph(group_data=[True],file_path=file_path,variables=['tipoProcedimiento_1_clave'])# Mostramos la gráficaplt.show()Quieres contribuir 🤔Nosotros somos Dataket y nos puedes contactar por medio de los siguientes correos:david.pedroza.segoviano@gmail.commissaelgabo@gmail.com