Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment insérer la trame de données pandas via mysqldb dans la base de données ?

Mise à jour :

Il y a maintenant un to_sql méthode, qui est la méthode préférée pour le faire, plutôt que write_frame :

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

Remarque :la syntaxe peut changer dans pandas 0.14...

Vous pouvez configurer la connexion avec MySQLdb :

from pandas.io import sql
import MySQLdb

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

Définition de la flavor de write_frame à 'mysql' signifie que vous pouvez écrire dans mysql :

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

L'argument if_exists indique aux pandas comment traiter si la table existe déjà :

if_exists: {'fail', 'replace', 'append'} , par défaut 'fail'
     fail  :Si le tableau existe, ne rien faire.
     replace  :Si le tableau existe, supprimez-le, recréez-le et insérez des données.
     append :Si la table existe, insérez des données. Créer si n'existe pas.

Bien que le write_frame documentation suggèrent actuellement que cela ne fonctionne que sur sqlite, mysql semble être pris en charge et en fait il y a pas mal de test mysql dans la base de code .