Máster en Ciencia de Datos - Tipología y ciclo de vida de los datos
📁 Dataset
├💽 ensayos_clinicos.db (archivo de base de datos SQLite que almacena la data recopilada de manera estructurada)
└📄 ensayos_PSC.csv (archivo plano separador por tabulación que contiene la data correspondiente a la tabla 'ensayos_psc')
📁 Source
├🤖 base_de_datos.py (fichero python con funciones especializadas en la gestión de la base de datos)
├🤖 explorar.py (fichero python que ejecuta un análisis descriptivo sobre los datos)
├🤖 webscraping.py (fichero python con funciones para webscraping y limpieza de datos)
└🤖 PRAC2.py (fichero python que ejecuta tareas exhaustivas de análisis y transformación sobre los datos, realiza un entrenamiento/ajuste de modelos supervisado y no supervisado de machine learning y un contraste de hipótesis)
Este fichero contiene la primera parte del código principal, se encarga de consultar la url objetivo y realiza las tareas necesarias de webscraping para obtener de esta la data necesaria. A continuación se describe las funciones que este fichero contiene:
• paso1_ordenar_elementos
El propósito de esta función es asegurar que el programa escanee primero las publicaciones más recientes, descartando posteriormente aquellas que ya han sido almacenadas con anterioridad sin perder información, aumentando la eficiencia del escaneo.
Esta es una función void, es decir, que no devuelve ningún valor.
• paso2_obtener_datos
Esta Función devuelve el objeto de lista con las url recopiladas.
• extraer_detalles
Esta Función devuelve, en un objeto de diccionario, la data de interés ubicada en la url recibida como parámetro.
• ictrp_url_info
Se encarga de recopilar la información pertinente al estudio clínico que se encuentra almacenada en su ficha de la ictrp.
Esta Función devuelve, en un objeto de diccionario, la data de interés ubicada en la url recibida como parámetro.
• paso3_almacenar_data
Se encarga de recorrer cada una de las urls recibidas como parámetro(obtenidas previamente de la función paso2_obtener_datos), para extraer la data de interés contenida en cada una (mediante la función extraer_detalles), y finalmente almacenar dicha data en la tabla y base de datos indicadas como parámetros mediante el llamado de una función invocada del fichero base_de_datos.py. Para ello, esta función utiliza las librerías Requests y BeautifulSoup.
Esta es una función void, es decir, que no devuelve ningún valor.
• main
Primero, invoca un objeto webdriver de la librería Selenium, el cual navega al domino proporcionado por la variable global "URL". Luego ejecuta en orden las funciones: "paso1_ordenar_elementos", "paso2_obtener_datos" y "paso3_almacenar_data" pasando a las primeras dos el objeto webdriver como parámetro, y a la última le pasa las url devueltas por paso2_obtener_datos y la ruta de la base de datos contenida en la variable global "DATABASE".
Esta es una función void, es decir, que no devuelve ningún valor.
Este fichero contiene funciones específicas para la gestión y el almacenamiento de la data en la base de datos "ensayos_clinicos.db". Utiliza la librería SQLite. A continuación se describe las funciones que este fichero contiene:
• inicializar_repositorio
Está diseñada para construir adecuadamente la tabla recibida como parámetro (si esta no existe previamente en la base de datos) siguiendo un esquema dado.
Esta es una función void, es decir, que no devuelve ningún valor.
• agregar_registro_psc
Está diseñada específicamente para insertar un registro a la tabla de ensayos clínicos llamada "ensayos_PSC", si el registro no existe previamente.
Esta es una función void, es decir, que no devuelve ningún valor.
• schema_to_pandas
Devuelve un diccionario con los nombres de las columnas de la tabla recibida como parámetro como llaves, y los tipos de dato de cada una, en formato Pandas, como valores.
Este fichero no contiene funciones. Está diseñado para que, al ser ejecutado, devuelva un breve resumen descriptivo de los datos almacenados en "ensayos_PSC", haciendo uso de las librerías Pandas y SQLite.
Este fichero contiene la segunda parte del código principal, se encarga de describir los datos, transformarlos, y aplicar sobre ellos técnicas de analítica avanzada. A continuación se describe las funciones que este fichero contiene:
• analisis_exploratorio
Esta es una función void, es decir, que no devuelve ningún valor.
• see_numerical_vars
Esta Función devuelve el objeto de lista con las url recopiladas.
• see_categorical_vars
Esta Función devuelve el objeto de lista con las url recopiladas.
Para ejecutar el programa, es necesario primero correr el script llamado webscraping.py, y en una segunda instancia correr el script llamado PRAC2.py, ya sea mediante el editor de código de preferencia o mediante los comandos python webscraping.py y python PRAC2.py.
Puede consultar un ejemplo de los datos resultantes tras una ejecución de este programa mediante el siguiente enlace Zenodo.
