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:
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