Protecto para el Datatón anticorrupción 2022 ✨.
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 de streamlit (Véase la rama de streamlit).
- python 3.8+
- python-env
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 😉.
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.py
- data: Carpeta que guarda todos los datos que son utilizados para los análisis y graficas.
- process_data: Los datos de la PDN procesados por nuestro módulo unblind.
- 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.
Para poder correr el código del paquete y ser capaz de hacer cambios en él, se necesitará seguir los siguientes pasos.
-
Clona tu repositorio (sustituye la URL de abajo por la URL de tu fork)
git clone https://github.com/Dataket/unblind.git
cd unblind
- Crea un ambiente de trabajo con Python-env
python -m venv venv
y actívalo con
# IOS
source venv/bin/activate
o con conda de la siguiente manera
conda create -n unblind-env
y actívalo con:
conda activate unblind-env
- Instala las librerías requeridas:
pip install -r requirements.txt
- Y ahora puedes testear todas estas funcionalidades en un notebook, script o lo que quieras necesites.
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 unblind
from unblind import utils, etl, dataviz
# Se define el path de trabajo
working_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 PDN
utils.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 2
keywords = ['Procedimiento']
# Se define el objeto de extracción de datos y se realiza la extracción de datos
extraction = 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ón
extraction.normalizeData('extracted_data', 'normalized')
# Se sustituyen los valores missings por un cero
extraction.missingData(0, 'normalized_data', 'missing_data')
# Se guarda la tabla
extraction.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 data
- Creamos la visualización:
# Una vez que ya tenemos guardado el csv tratado, podemos definir la clase de visualizaciones
dataviz = dataviz.DataViz(pdn_system=pdn_system, root_path=root_path)
# Realizamos nuestra primer gráfica
file_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áfica
plt.show()
Nosotros somos Dataket y nos puedes contactar por medio de los siguientes correos: