sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo insertar el marco de datos de pandas a través de mysqldb en la base de datos?

Actualización:

Ahora hay un to_sql método, que es la forma preferida de hacer esto, en lugar de write_frame :

df.to_sql(con=con, name='table_name_for_df', if_exists='replace', flavor='mysql')

Tenga en cuenta también:la sintaxis puede cambiar en pandas 0.14...

Puede configurar la conexión con MySQLdb :

from pandas.io import sql
import MySQLdb

con = MySQLdb.connect()  # may need to add some other options to connect

Configuración del flavor de write_frame a 'mysql' significa que puede escribir en mysql:

sql.write_frame(df, con=con, name='table_name_for_df', 
                if_exists='replace', flavor='mysql')

El argumento if_exists le dice a los pandas cómo tratar si la mesa ya existe:

if_exists: {'fail', 'replace', 'append'} , por defecto 'fail'
     fail :si la tabla existe, no haga nada.
     replace :si existe una tabla, suéltela, vuelva a crearla e inserte datos.
     append :Si la tabla existe, inserte datos. Crear si no existe.

Aunque write_frame documentos actualmente sugiere que solo funciona en sqlite, mysql parece ser compatible y, de hecho, hay bastante pruebas de mysql en el código base .