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:
- Creación automática de tablas — las tablas se crean al primer acceso
- Esquema dinámico — la estructura de la tabla se genera automáticamente al insertar datos
- Interfaz de diccionario — los datos se representan como diccionarios de Python
- 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}) También en la biblioteca
Trabajo con CSV en Kotlin: bibliotecas, análisis y escritura de datos
Registro para Swift (iOS/macOS): mejores soluciones
Métricas de Prometheus en Swift: integración para aplicaciones iOS/macOS