Cree una tabla SQL a partir del marco de datos de Pandas usando SQLAlchemy

En este artículo, discutiremos cómo crear una tabla SQL a partir del marco de datos de Pandas usando SQLAlchemy.

Como primeros pasos, establezca una conexión con su base de datos existente, utilizando 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

Ejemplo:

Python3

engine = create_engine(
    'postgresql+psycopg2://scott:tiger@localhost:5432/mydatabase')

El ejemplo anterior crea un objeto Dialect específico para PostgreSQL y un objeto Pool que establece una conexión DBAPI en localhost:5432 cuando se recibe una solicitud de conexión.

SQLAlchemy incluye muchas implementaciones de Dialect para las bases de datos más comunes como Oracle, MS SQL, PostgreSQL, SQLite, MySQL , etc. Para cargar el marco de datos en cualquier base de datos, SQLAlchemy proporciona una función llamada to_sql().

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

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 SQLite incorporada, solo en memoria, que es una de las formas más fáciles de probar cosas, pero luego 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 una base de datos SQLite solo en memoria y hagámosla interactuable con python usando el controlador pysqlite . 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 the necessary packages
import pandas
from sqlalchemy import create_engine
  
# Create the engine to connect to the inbuilt 
# sqllite database
engine = create_engine("sqlite+pysqlite:///:memory:")
  
# Read data from CSV which will be
# loaded as a dataframe object
data = pandas.read_csv('superstore.csv')
  
# print the sample of a dataframe
data.head()
  
# Write data into the table in sqllite database
data.to_sql('loan_data', engine)

Producción:

producción

Para verificar si el marco de datos se carga como una tabla, podemos consultar la tabla usando SQLAlchemy como se muestra a continuación,

Python3

from sqlalchemy import text
  
# establish the connection with the engine object
with engine.connect() as conn:
    
    # let's select the column credit_history
    # from the loan data table
    result = conn.execute(text("SELECT Credit_History FROM loan_data"))
      
    # print the result
    for row in result:
        print(row.Credit_History)

Producción:

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 *