{"id":15501668,"url":"https://github.com/dataket/unblind","last_synced_at":"2025-04-22T23:07:15.915Z","repository":{"id":64192748,"uuid":"573961926","full_name":"Dataket/unblind","owner":"Dataket","description":"Proyecto para el Datatón anticorrupción 2022 - By Dataket 🔥","archived":false,"fork":false,"pushed_at":"2022-12-09T07:00:16.000Z","size":26394,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-22T23:07:07.491Z","etag":null,"topics":["corruption","data-engineering","data-science","dataviz","etl","json","open-source","python","streamlit"],"latest_commit_sha":null,"homepage":"https://dataket-unblind.streamlit.app/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dataket.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-04T01:08:26.000Z","updated_at":"2023-02-09T01:13:49.000Z","dependencies_parsed_at":"2023-01-15T03:45:50.746Z","dependency_job_id":null,"html_url":"https://github.com/Dataket/unblind","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dataket%2Funblind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dataket%2Funblind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dataket%2Funblind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dataket%2Funblind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dataket","download_url":"https://codeload.github.com/Dataket/unblind/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250337947,"owners_count":21414104,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["corruption","data-engineering","data-science","dataviz","etl","json","open-source","python","streamlit"],"created_at":"2024-10-02T09:05:17.239Z","updated_at":"2025-04-22T23:07:15.898Z","avatar_url":"https://github.com/Dataket.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unblind\nProtecto para el Datatón anticorrupción 2022 ✨.\n\n# Descripción 📄\nLibrerí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)).\n\n# Requerimientos para el paquete 📦\n- python 3.8+\n- python-env\n\n# Usa la librería 👀\nPara usar esta librería solamente tiene que hacer:\n```\npip install unblind\n```\n¡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 😉.\n\n# Si eres developer y te interesa aportar, a continuación hay cosas que te interesan.\n\n# Estructura de carpetas 📁\nA continuación ser verá la estructura de carpetas utilizada en nuestro proyecto así como las descripciones de cada uno de los archivos.\n\n```\n.\n├── data\n│   └── process_data\n├── unblind\n│   ├── __init__.py\n│   ├── dataviz.py\n│   ├── etl.py\n│   └── utils.py\n├── LICENSE\n├── README.md\n├── pyproject.toml\n├── requirements.txt\n└── setup.py\n```\n\n- data: Carpeta que guarda todos los datos que son utilizados para los análisis y graficas.\n\t- process_data: Los datos de la __PDN__ procesados por nuestro módulo **unblind**. \n- unblind: Carpeta que alberga todo el código y lógica del paquete.\n\t- dataviz.py: Script donde se encuentra toda la lógica de la visualización de datos para el paquete.\n\t- 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).\n\t- utils.py: Script que contiene funciones *\"helpers\"* que ayudan en la obtención de datos a partir de la API de la PDN.\n\n\n# Setup 🛠\nPara poder correr el código del paquete y ser capaz de hacer cambios en él, se necesitará seguir los siguientes pasos.\n\n1. [¡Haz fork al repositorio!](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)\n\n2. Clona tu repositorio (sustituye la URL de abajo por la URL de tu fork)\n```bash\ngit clone https://github.com/Dataket/unblind.git\n\ncd unblind\n```\n\n3. Crea un ambiente de trabajo con Python-env\n```bash\npython -m venv venv\n```\ny actívalo con\n\n```bash\n# IOS\nsource venv/bin/activate\n```\no con conda de la siguiente manera\n```bash\nconda create -n unblind-env\n```\n\ny actívalo con:\n```bash\nconda activate unblind-env\n```\n\n4. Instala las librerías requeridas: \n```bash\npip install -r requirements.txt\n```\n\n5. Y ahora puedes testear todas estas funcionalidades en un notebook, script o lo que quieras necesites.\n\n# Ejemplo de uso 🔎\n\nVamos a aprender cómo hacer una visualización para el Sistema 2 de la PDN:\n\n1. Importamos la librería y definimos los caminos:\n```python\n# Se importa el módulo unblind\nfrom unblind import utils, etl, dataviz\n\n# Se define el path de trabajo\nworking_path = '/working_path/'\nroot_path = working_path+'data/'\npdn_system = 's2'\n```\n\n2. Descargamos los archivos de los sistemas de la PDN:\n```python\n# Se descargan los sistemas de la PDN\nutils.get_datasets(to_path=root_path)\n```\n\n3. Extraemos y tratamos los datos que nos interesan:\n```python\n# Se definen las palabras clave que nos interesa tomar del Sistema 2\nkeywords = ['Procedimiento']\n\n# Se define el objeto de extracción de datos y se realiza la extracción de datos\nextraction = etl.FeatureEngineering(pdn_system=pdn_system, root_path=root_path, keywords=keywords, metadata_columns=[])\nextraction.extractData('extracted_data')\n\n# Posteriormente se realiza la normalización de la tabla para evitar traer listas o diccionarios dentro de la extracción\nextraction.normalizeData('extracted_data', 'normalized')\n\n# Se sustituyen los valores missings por un cero\nextraction.missingData(0, 'normalized_data', 'missing_data')\n\n# Se guarda la tabla\nextraction.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\n```\n\n4. Creamos la visualización:\n```python\n# Una vez que ya tenemos guardado el csv tratado, podemos definir la clase de visualizaciones\ndataviz = dataviz.DataViz(pdn_system=pdn_system, root_path=root_path)\n\n# Realizamos nuestra primer gráfica\nfile_path = 'ut_ug_m' # Es el nombre del archivo que guardamos, en al convensión que usamos pero sin el sufijo '_data.csv'\ndataviz.createGraph(group_data=[True], file_path=file_path, variables=['tipoProcedimiento_1_clave'])\n\n# Mostramos la gráfica\nplt.show()\n```\n\n# Quieres contribuir 🤔\nNosotros somos Dataket y nos puedes contactar por medio de los siguientes correos:\n- david.pedroza.segoviano@gmail.com\n- missaelgabo@gmail.com\n- ge.rodriguezrivera@ugto.mx\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataket%2Funblind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataket%2Funblind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataket%2Funblind/lists"}