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.
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:
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:
Publicación traducida automáticamente
Artículo escrito por jssuriyakumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA