Método pandas to_sql

Método pandas to_sql
Comprenderemos cómo usar la función pandas to_sql () a lo largo de este tutorial. Esta función nos permite guardar registros de pandas en una base de datos SQL.

Sintaxis de funciones

La función tiene una sintaxis como se muestra:

Marco de datos.TO_SQL (Nombre, Con, Schema = None, If_Exists = 'Fail', index = true, index_label = none, chunksize = none, dtype = none, método = none)

Parámetros de función

Discutamos los parámetros de la función y lo que cada uno implica:

  1. Nombre: se refiere a la tabla SQL en la que se guardan los datos.
  2. Con - se refiere a la conexión al motor de la base de datos. El motor Sqlalchemy gestiona la conexión a la base de datos. Por lo tanto, puede usar cualquier base de datos compatible con la biblioteca.
  3. esquema: especifica el esquema de destino bajo el cual guardar los datos.
  4. if_exists: establece las acciones si la tabla especificada ya existe en el esquema de destino. Las opciones aceptadas incluyen:
    • -Fail - plantea un error.
    • Reemplace: deja caer la tabla y agrega la nueva tabla.
    • Agregar: inserta los nuevos datos a los existentes.
  5. Índice - Permite que el índice de DataFrame se escriba como una columna. Si el índice tiene un nombre, la función lo usará como el nombre de la columna en la base de datos.
  6. index_label: si el index_column no tiene un nombre, puede especificar uno usando este parámetro.
  7. ChunkSize: especifica cuántas filas se pueden escribir a la vez. Si no se especifica, la función escribirá todas las filas a la vez.
  8. dtype: especifica el tipo de datos para las columnas.
  9. Método: este parámetro define el método SQL utilizado para insertar los datos. Los valores aceptados incluyen:
    • Ninguno - usa el inserto SQL estándar.
    • Multi - - permite pasar múltiples valores a una sola declaración.

Obtenga más información sobre los métodos de inserción SQL.

Valor de retorno de la función

La función devuelve el número de filas afectadas por la operación SQL.

Ejemplo:

En este ejemplo, insertaremos el siguiente DataFrame en una base de datos MySQL.

https: // www.dropbox.com/s/kql82sncnu7j3c1/películas.CSV?dl = 0

Paso 1: Comience por importar las bibliotecas requeridas y cargando DataFrame.

importar pandas como PD
DF = PD.read_csv ('películas.CSV ', index_col = [0])

Una vez que se cargue el marco de datos, continúe con el siguiente paso.

Paso 2: El siguiente paso es crear un esquema de base de datos. Abra su terminal y conéctese a su instancia de MySQL.

$ mysql -u root -p

Una vez iniciado sesión, cree un esquema de base de datos como se muestra:

mysql> Crear base de datos pandas_sample;

El código anterior debe crear una base de datos llamada 'pandas_sample.'. Siéntase libre de cambiar esto para su operación deseada.

Paso 3: A continuación, volvamos a nuestro código Python y conecte a la base de datos. Podemos comenzar importando sqlalchemy y creando la conexión con el motor.

de sqlalchemy import crear_Engine
motor = create_engine ("mysql+pymysql: // root: [email protected]: 3306/pandas_sample?charset = UTF8MB4 ")

En el ejemplo anterior, comenzamos importando el módulo create_engine desde la biblioteca SQLalchemy.

Luego creamos una conexión al motor MySQL usando la sintaxis que se muestra a continuación:

create_engine ("mysql+pymysql: // user: pass@host: puerto/dbname

Nota: Si no tiene instalada la biblioteca Pymysql, el código anterior devolverá un error.

Puede resolver esto instalando la biblioteca como se muestra:

PIP3 Instalar PymSQL

Paso 4: Una vez que tenemos todo en funcionamiento, podemos guardar el marco de datos cargado en la base de datos utilizando la función TO_SQL () como se muestra:

df.to_sql ('películas', con = motor)

El código anterior debe crear una nueva tabla llamada 'Películas' e insertar los valores de DataFrame.

Para ver todos los registros en la base de datos, podemos ejecutar:

mysql> usar pandas_sample;
mysql> seleccionar * de las películas;

Esto debería devolver los registros de DataFrame como se muestra:

También puede usar Python para obtener los registros de la base de datos como se muestra:

motor.ejecutar ('select * de las películas').Fetchall ()

Los valores resultantes son como se muestra:

Conclusión

Este artículo explora cómo usar la función pandas to_sql () para guardar un marco de datos en una base de datos MySQL.