Importando datos en Python (III)

Índice de contenidos

En este post abordamos la importación de bases de datos relacionales en Python, dando continuación a los anteriores: lectura de ficheros planos y otras extensiones.

Bases de datos relacionales

Una base de datos relacional es un conjunto de una o más tablas estructuradas en registros (filas) y campos (columnas), vinculadas entre sí por un campo común, llamado clave. A esta manera de construir bases de datos se le denomina modelo relacional.

La estructura de las tablas es análoga al concepto data frame. Es esencial que cada registro contenga un identificador único, que se usará como clave primaria para acceder explícitamente a dicho registro.

El término query o consulta define la acción de obtener datos de la BD.

Encontramos varios sistemas de gestión de BBDD relacionales, como PostgreSQL, MySQL o SQLite. Todos ellos hacen uso de SQL, un lenguaje de consulta estructurada.

Consultando bases de datos relacionales en Python

1. Crear un motor de base de datos.

Para nuestro ejemplo usaremos la base de datos de muestra ‘Chinook’, disponible en SQLite. La descargamos, descomprimimos y copiamos el archivo ‘Chinook_Sqlite.sqlite’ en el directorio donde tengamos instalado Python (en este caso …\Python\Python35-32\).

• Necesitamos instalar la librería sqlalchemy. Siguiendo las instrucciones del apartado 3 del post introductorio a Python:

phyton

• Importamos la función create_engine() de la librería sqlalchemy. Hacemos la llamada a dicha función pasando como argumento la cadena de conexión (tipoBD:///nombreBD.tipoBD) y lo almacenamos en una variable.
phyton

• Podemos explorar las tablas que contiene la BD, aplicando el método .table_names() a nuestro motor.

phyton

2. Realizar consulta.

El proceso a seguir es el siguiente:

• Abrir una conexión al motor de base de datos > .connect()

• Ejecutar la query > .execute()

• Guardar el resultado de la query en un data frame > pd.DataFrame()

.fetchall(): devuelve todos los registros

.fetchmany(size= ): devuelve #registros especificado en size

• Asignar nombres a las columnas del data frame > .keys()

• Cerrar la conexión al motor > .close()

O bien, usando el gestor de contexto, nos ahorramos cerrar explícitamente la conexión, pero igualmente hay que transformar el resultado de la query en un data frame y asignar nombres a las columnas.

La librería pandas nos permite ejecutar una query en una sola línea, sin necesidad de conectar con el motor y cerrar la conexión de manera explícita.

Esto se consigue con la función read_sql_query(), que recoge como primer argumento una cadena con el texto de la consulta, y como segundo argumento el motor con el que queremos conectar.

El resultado de la consulta será un data frame, que almacenamos en una variable.

phyton

Practica con pandas y prueba a encontrar tu grupo!

Share on facebook
Share on twitter
Share on linkedin
Share on email
2 min
Suscríbete a nuestra newsletter

Los mejores artículos de analítica digital para potenciar tu negocio.

4 comentarios en “Importando datos en Python (III)”

  1. Roberto Matarrita

    Cuando ejecuto este proceso me da el siguiente error.
    Lo estoy corriendo en postgresql

    Traceback (most recent call last):
    File «importpandas», line 5, in
    df=pd.read_sql_query(‘Select * from usuarios’)
    TypeError: read_sql_query() missing 1 required positional argument: ‘con’

    Roberto Matarrita
    rmatarria@gmail.com
    Costa Rica

    1. Lourdes Hernández

      Hola Roberto,

      Te está pidiendo que pases el segundo argumento a la función (el motor de base de datos con el que queremos conectar).

      Gracias por seguirnos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entradas relacionadas

Comparativa de herramientas para procesos ETL

En este post haremos una revisión sobre algunos de los lenguajes/herramientas más utilizados en nuestro ecosistema de analítica digital en procesos de extracción, transformación y carga de datos.

3 minutos

Dificultad

Jupyter Notebook

Jupyter Notebook es una aplicación web de código abierto que permite incluir texto, vídeo, audio e imágenes.

4 minutos

Dificultad

Cómo integrar KNIME con R

Integrar KNIME con R nos permite construir flujos de análisis de datos fácilmente comprensibles.

2 minutos

Dificultad

Ir arriba

Esta web utiliza ‘cookies’ de terceros. Al clicar aceptar está aceptando el uso que realizamos de las cookies. Para más información puede consultar nuestra Política de cookies