Páginas

Creación de un Script en Python para trabajar con una BD Relacional

  Primero, necesitarás un Dataset para trabajar. Para este ejemplo, usaré un dataset simple que representa una base de datos de una librería, con tablas para libros y autores. Luego, escribiré un script en Python para interactuar con esta base de datos.

Pasos: descargar los DataSet: https://chat.openai.com/share/6465a31f-f15c-4aae-8302-0966f0bbff94

Paso 1. Debes abrir JupyterLab



clic en la flecha hacia arriba para cargar los Dataset: "Libros(1)" y "Autores(1)"

Luego al lado izquierdo haces doble clic en:


Se abrirá al lado derecho de tu Notebook el DataSet: Libros(1)


También cargas el DataSet: "Autores(1)"

Luego ejecutas estas líneas de código en JupyterLab:

import pandas as pd

import sqlite3

from datetime import datetime

import random


# Crear datos simulados para autores

autores = pd.DataFrame({

    "autor_id": range(1, 11),

    "nombre": [f"Autor {i}" for i in range(1, 11)],

    "nacionalidad": ["País " + chr(65+i) for i in range(10)],

    "fecha_nacimiento": [datetime(1950 + i, 1, 1) for i in range(10)]

})


# Crear datos simulados para libros

libros = pd.DataFrame({

    "libro_id": range(1, 21),

    "titulo": [f"Libro {i}" for i in range(1, 21)],

    "genero": [random.choice(["Novela", "Poesía", "Ensayo", "Ciencia Ficción", "Biografía"]) for _ in range(20)],

    "año_publicacion": [random.randint(1990, 2020) for _ in range(20)],

    "autor_id": [random.randint(1, 10) for _ in range(20)]

})


autores, libros

//Este codigo permite insertar de manera aleatoria 20 registros para "Libros" y 10 registros para "Autores"

//Ten en cuenta que para ejecutar este código en JupyterLab, necesitarás tener instaladas las bibliotecas pandas, sqlite3, matplotlib, y seaborn. Si no las tienes instaladas, puedes instalarlas ejecutando !pip install pandas matplotlib seaborn en una celda de tu notebook de JupyterLab.


# Crear una conexión a una base de datos SQLite en memoria

conn = sqlite3.connect(':memory:')


# Crear las tablas autores y libros en la base de datos SQLite

autores.to_sql('autores', conn, index=False, if_exists='replace')

libros.to_sql('libros', conn, index=False, if_exists='replace')


# Verificar que las tablas se han creado correctamente

pd.read_sql_query("SELECT * FROM autores LIMIT 3", conn), pd.read_sql_query("SELECT * FROM libros LIMIT 3", conn)


// Este código hace las respectivas tablas en SQLite

# Análisis descriptivo básico # Número total de autores y libros num_autores = pd.read_sql_query("SELECT COUNT(*) as total_autores FROM autores", conn) num_libros = pd.read_sql_query("SELECT COUNT(*) as total_libros FROM libros", conn) # Revisión de valores faltantes en ambas tablas missing_values_autores = pd.read_sql_query("SELECT COUNT(*) - COUNT(autor_id) as autor_id, COUNT(*) - COUNT(nombre) as nombre, COUNT(*) - COUNT(nacionalidad) as nacionalidad, COUNT(*) - COUNT(fecha_nacimiento) as fecha_nacimiento FROM autores", conn) missing_values_libros = pd.read_sql_query("SELECT COUNT(*) - COUNT(libro_id) as libro_id, COUNT(*) - COUNT(titulo) as titulo, COUNT(*) - COUNT(genero) as genero, COUNT(*) - COUNT(año_publicacion) as año_publicacion, COUNT(*) - COUNT(autor_id) as autor_id_libro FROM libros", conn) num_autores, num_libros, missing_values_autores, missing_values_libros

//Código para hacer las consultas de las tablas Libros(1) y Autores(1)


# Análisis estadístico descriptivo


# Número de libros por autor

libros_por_autor = pd.read_sql_query("""

    SELECT a.nombre, COUNT(l.libro_id) as num_libros

    FROM autores a

    JOIN libros l ON a.autor_id = l.autor_id

    GROUP BY a.autor_id

    ORDER BY num_libros DESC

""", conn)


# Géneros más comunes

generos_mas_comunes = pd.read_sql_query("""

    SELECT genero, COUNT(*) as cantidad

    FROM libros

    GROUP BY genero

    ORDER BY cantidad DESC

""", conn)


# Distribución de años de publicación de los libros

distribucion_años = pd.read_sql_query("SELECT año_publicacion, COUNT(*) as cantidad FROM libros GROUP BY año_publicacion", conn)


libros_por_autor, generos_mas_comunes, distribucion_años

//CÓDIGO DEL ANALISIS ESTADÍSTICO DESCRIPTIVO


Número de Libros por Autor:

  • Esta visualización muestra la cantidad de libros publicados por cada autor. Podemos ver que algunos autores, como Autor 8, han sido más prolíficos en términos de número de libros publicados.





Distribución de Géneros de Libros:

  • El gráfico revela que la "Poesía" es el género más común en este conjunto de datos, seguido de cerca por "Novela", "Ciencia Ficción" y "Biografía". El género "Ensayo" es menos común.



La distribución a lo largo de los años muestra picos en ciertos años, como 1999, 2005 y 2012, donde se publicaron más libros.


Estas visualizaciones nos ofrecen una comprensión clara de los patrones y tendencias en los datos de la librería.


No hay comentarios:

Publicar un comentario