Dataset Python: trabaja con bases de datos al estilo Pandas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Dataset Python: trabaja con bases de datos de forma sencilla al estilo Pandas

¿Qué es la librería Dataset?

Dataset es una librería de Python que ofrece una interfaz cómoda para trabajar con bases de datos SQL sin necesidad de escribir consultas SQL. Te permite manejar bases de datos con la misma facilidad que si usaras diccionarios de Python, creando tablas y gestionando la estructura de datos de forma automática.

Principales ventajas de Dataset:

  • Creación automática de tablas y esquemas
  • API simple sin necesidad de SQL
  • Soporte para múltiples bases de datos mediante SQLAlchemy
  • Sintaxis intuitiva y fácil de entender
  • Configuración mínima requerida
  • Excelente compatibilidad con Pandas

Instalación y configuración de Dataset

Instalación de la librería

pip install dataset

Para trabajar con bases de datos específicas, es posible que necesites controladores adicionales:

# Para PostgreSQL
pip install psycopg2-binary

# Para MySQL
pip install pymysql

# Para SQLite el controlador ya viene incluido en Python

Conexión a diferentes bases de datos

import dataset

# SQLite (base de datos local)
db = dataset.connect('sqlite:///mibasededatos.db')

# PostgreSQL
db = dataset.connect('postgresql://usuario:contraseña@localhost:5432/nombrebd')

# MySQL
db = dataset.connect('mysql://usuario:contraseña@localhost/nombrebd')

# En memoria (para pruebas)
db = dataset.connect('sqlite:///:memory:')

Principios básicos de funcionamiento de Dataset

Dataset funciona bajo los siguientes principios:

  1. Creación automática de tablas — las tablas se crean al primer acceso
  2. Esquema dinámico — la estructura de la tabla se genera automáticamente al insertar datos
  3. Interfaz de diccionario — los datos se representan como diccionarios de Python
  4. Sin SQL — todas las operaciones se realizan a través de métodos de Python

Creación y gestión de tablas

Obtener una tabla

# Obtener una tabla (se crea automáticamente si no existe)
tabla_usuarios = db['usuarios']

# Forma alternativa
tabla_usuarios = db.get_table('usuarios')

Crear una tabla con configuración

# Crear una tabla con una clave primaria personalizada
db.create_table('productos', primary_id='id_producto', primary_type=db.types.string)

Inserción de datos

Insertar un solo registro

tabla = db['usuarios']

# Insertar un usuario
tabla.insert({
    'nombre': 'Carlos García',
    'email': 'carlos@ejemplo.com',
    'edad': 30,
    'ciudad': 'Madrid'
})

Inserción masiva

# Insertar varios registros
datos_usuarios = [
    {'nombre': 'Ana López', 'email': 'ana@ejemplo.com', 'edad': 25},
    {'nombre': 'Pedro Martínez', 'email': 'pedro@ejemplo.com', 'edad': 35},
    {'nombre': 'María Rodríguez', 'email': 'maria@ejemplo.com', 'edad': 28}
]

tabla.insert_many(datos_usuarios)

Operaciones Upsert

# Insertar o actualizar (si ya existe un registro con ese email)
tabla.upsert({
    'nombre': 'Carlos García',
    'email': 'carlos@ejemplo.com',
    'edad': 31,
    'ciudad': 'Barcelona'
}, ['email'])

Búsqueda y filtrado de datos

Obtener todos los registros

# Obtener todos los registros
todos_usuarios = list(tabla.all())
for usuario in todos_usuarios:
    print(f"{usuario['nombre']} - {usuario['email']}")

Búsqueda con condiciones

# Encontrar un solo registro
usuario = tabla.find_one(nombre='Carlos García')

# Encontrar todos los registros que cumplan una condición
usuarios_jovenes = list(tabla.find(edad={'<': 30})                    

Recommendations