Conectando pandas a una base de datos con SQLAlchemy

En este artículo, discutiremos cómo conectar pandas a una base de datos y realizar operaciones de base de datos usando SQLAlchemy.

El primer paso es establecer una conexión con su base de datos existente, usando la función create_engine() de SQLAlchemy.

Sintaxis:

desde sqlalchemy import create_engine

motor = crear_motor(dialecto+controlador://nombre de usuario:contraseña@host:puerto/base de datos)

Explicación:

  • dialecto – Nombre del DBMS
  • controlador : nombre de la API de base de datos que mueve información entre SQLAlchemy y la base de datos.
  • Nombre de usuario, Contraseña – Credenciales de usuario de base de datos
  • host : puerto: especifique el tipo de host y el número de puerto.
  • Base de datos : nombre de la base de datos

Conectando pandas a una base de datos con SQLAlchemy

Sintaxis: pandas.DataFrame.to_sql(table_name, engine_name, if_exists, index)

Explicación:

  • table_name – Nombre en el que se debe almacenar la tabla
  • engine_name : nombre del motor que está conectado a la base de datos
  • if_exists : de forma predeterminada, pandas arroja un error si table_name ya existe. Use ‘REEMPLAZAR’ para reemplazar este conjunto de datos con el anterior o «AÑADIR» para agregar los datos a la tabla existente.
  • index – (bool), agrega una columna de índice a la tabla que identifica cada fila de manera única.

Para este ejemplo, podemos usar una base de datos PostgreSQL, que es una de las formas más fáciles de hacer las cosas, pero el procedimiento es el mismo para todas las demás bases de datos compatibles con SQLAlchemy. Puede descargar el conjunto de datos de muestra aquí .

Importemos primero el conjunto de datos necesario. Ahora, establezcamos la conexión con la base de datos PostgreSQL y hagámosla interactuable con python usando el controlador psycopg2. A continuación, cargaremos el marco de datos para enviarlo a nuestra base de datos SQLite usando la función to_sql() como se muestra. 

Python3

# import necessary packages
import pandas
import psycopg2
from sqlalchemy import create_engine
  
# establish connection with the database
engine = create_engine(
    "dialect+driver//username:password@hostname:portnumber/databasename")
  
# read the pandas dataframe
data = pandas.read_csv("path to dataset")
  
# connect the pandas dataframe with postgresql table
data.to_sql('loan_data', engine, if_exists='replace')

Producción:

Esto creará una tabla llamada préstamo_datos en la base de datos de PostgreSQL.

Conexión de una tabla a la base de datos PostgreSQL

Convertir una tabla de PostgreSQL en un marco de datos de pandas

Como hicimos anteriormente, también podemos convertir una tabla de PostgreSQL en un marco de datos de pandas usando la función read_sql_table() como se muestra a continuación. Aquí, leamos la tabla de datos de préstamo como se muestra a continuación.

Sintaxis: pandas.DataFrame.read_sql_table(nombre_tabla, con = nombre_motor, columnas)

Explicación:

  • table_name – Nombre en el que se debe almacenar la tabla
  • con – Nombre del motor que está conectado a la base de datos
  • columnas : lista de columnas que deben leerse de la tabla SQL

Python3

# import necessary packages
import pandas as pd
import psycopg2
from sqlalchemy import create_engine
  
# establish connection with the database
engine = create_engine(
    "dialect+driver//username:password@hostname:portnumber/databasename")
  
# read the postgresql table
table_df = pd.read_sql_table(
    "loan_data",
    con=engine,
    columns=['Loan_ID',
             'Gender',
             'Married',
             'Dependents',
             'Education',
             'Self_Employed',
             'ApplicantIncome',
             'CoapplicantIncome',
             'LoanAmount',
             'Loan_Amount_Term',
             'Credit_History',
             'Property_Area',
             'Loan_Status'],
  
)
  
# print the postgresql table loaded as 
# pandas dataframe
print(table_df)

Producción:

La tabla Postgresql se lee como un marco de datos usando SQLAlchemy

Pasar consultas SQL a datos de tablas de consulta

También podemos pasar consultas SQL a la función read_sql_table a columnas o registros específicos de solo lectura de la base de datos de PostgreSQL. El procedimiento sigue siendo el mismo. La sintaxis SQL sigue siendo la misma que la sintaxis convencional para consultar datos de una tabla SQL. El siguiente ejemplo muestra cómo obtener todos los registros de la tabla de datos_de_préstamo mediante una consulta SQL.

Python3

# import necessary packages
import pandas as pd
import psycopg2
from sqlalchemy import create_engine
  
# establish connection with the database
engine = create_engine(
    "dialect+driver//username:password@hostname:portnumber/databasename")
  
# read table data using sql query
sql_df = pd.read_sql(
    "SELECT * FROM loan_data",
    con=engine
)
  
print(sql_df)

Producción:

La tabla Postgresql se lee como un marco de datos usando SQLAlchemy

Publicación traducida automáticamente

Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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