Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dataket/unblind
Proyecto para el Datatón anticorrupción 2022 - By Dataket 🔥
https://github.com/dataket/unblind
corruption data-engineering data-science dataviz etl json open-source python streamlit
Last synced: 4 months ago
JSON representation
Proyecto para el Datatón anticorrupción 2022 - By Dataket 🔥
- Host: GitHub
- URL: https://github.com/dataket/unblind
- Owner: Dataket
- License: mit
- Created: 2022-12-04T01:08:26.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T07:00:16.000Z (about 2 years ago)
- Last Synced: 2024-10-09T09:27:26.614Z (4 months ago)
- Topics: corruption, data-engineering, data-science, dataviz, etl, json, open-source, python, streamlit
- Language: Python
- Homepage: https://dataket-unblind.streamlit.app/
- Size: 25.2 MB
- Stars: 4
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: code-of-conduct.md
Awesome Lists containing this project
README
# Unblind
Protecto 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 de [streamlit](https://streamlit.io/) (Véase la rama de [streamlit](https://github.com/Dataket/unblind/tree/streamlit)).# Requerimientos para el paquete 📦
- python 3.8+
- python-env# Usa 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.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.# Setup 🛠
Para poder correr el código del paquete y ser capaz de hacer cambios en él, se necesitará seguir los siguientes pasos.1. [¡Haz fork al repositorio!](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)
2. Clona tu repositorio (sustituye la URL de abajo por la URL de tu fork)
```bash
git clone https://github.com/Dataket/unblind.gitcd unblind
```3. Crea un ambiente de trabajo con Python-env
```bash
python -m venv venv
```
y actívalo con```bash
# IOS
source venv/bin/activate
```
o con conda de la siguiente manera
```bash
conda create -n unblind-env
```y actívalo con:
```bash
conda activate unblind-env
```4. Instala las librerías requeridas:
```bash
pip install -r requirements.txt
```5. Y 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:
1. Importamos la librería y definimos los caminos:
```python
# 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'
```2. Descargamos los archivos de los sistemas de la PDN:
```python
# Se descargan los sistemas de la PDN
utils.get_datasets(to_path=root_path)
```3. Extraemos y tratamos los datos que nos interesan:
```python
# 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
```4. Creamos la visualización:
```python
# 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()
```# Quieres contribuir 🤔
Nosotros somos Dataket y nos puedes contactar por medio de los siguientes correos:
- [email protected]
- [email protected]
- [email protected]