Maison >base de données >tutoriel mysql >Comment puis-je insérer efficacement un DataFrame Pandas dans une base de données MySQL ?
Insérer Pandas Dataframe dans la base de données via MySQLdb
La connexion à MySQL à l'aide de Python est simple et les opérations telles que l'insertion de lignes sont bien prises en charge. Cependant, lorsqu'il s'agit d'insérer une trame de données Pandas entière dans une table existante, la question se pose : l'insertion directe est-elle possible ou nécessite-t-elle une itération sur les lignes ?
Insertion directe à l'aide de to_sql
La méthode préférée pour insérer un dataframe dans MySQL consiste à utiliser to_sql méthode :
df.to_sql(con=con, name='table_name_for_df', if_exists='replace', flavor='mysql')
Configuration de la connexion avec MySQLdb
Pour établir une connexion à MySQL à l'aide de MySQLdb, exécutez ce qui suit :
from pandas.io import sql import MySQLdb con = MySQLdb.connect() # may need additional connection parameters
Flavor et if_exists
Définition de la saveur de write_frame sur 'mysql' permet d'écrire sur MySQL. Le paramètre if_exists contrôle le comportement lorsque la table existe déjà, avec les options « échec », « remplacer » et « append ».
Exemple
Considérons un simple table avec les colonnes ID, data1 et data2, et un Pandas correspondant dataframe :
df = pd.DataFrame({'ID': [1, 2, 3], 'data1': ['a', 'b', 'c'], 'data2': [10, 20, 30]})
L'insertion de ce dataframe dans la base de données à l'aide de la méthode to_sql ressemblerait à ceci :
sql.write_frame(df, con=con, name='example_table', if_exists='replace', flavor='mysql')
Dans cet exemple, 'example_table' est le nom de la table dans la base de données, et « remplacer » signifie que la table existante sera remplacée par les données du dataframe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!