Maison > base de données > tutoriel mysql > Comment écrire correctement des DataFrames Pandas sur MySQL à l'aide de SQLAlchemy ?

Comment écrire correctement des DataFrames Pandas sur MySQL à l'aide de SQLAlchemy ?

Barbara Streisand
Libérer: 2024-11-27 22:49:09
original
245 Les gens l'ont consulté

How to Correctly Write Pandas DataFrames to MySQL Using SQLAlchemy?

Utilisation de SQLAlchemy avec MySQL pour écrire des DataFrames Pandas sur MySQL

Lors de la tentative d'écriture d'un DataFrame pandas sur une table MySQL à l'aide de la méthode to_sql pendant en passant de la syntaxe obsolète 'flavor='mysql'' à l'approche recommandée du moteur SQLAlchemy, les utilisateurs peuvent rencontrer une erreur similaire à :

DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master
WHERE type='table' AND name=?;': Wrong number of arguments during
string formatting
Copier après la connexion

Cette erreur suggère que SQLite est utilisé à la place de MySQL. Pour résoudre cela, assurez-vous de la bonne utilisation d'une connexion SQLAlchemy avec MySQL et spécifiquement mysql.connector.

Solution

L'erreur peut être résolue en utilisant le moteur créé avec SQLAlchemy directement comme connexion pour la méthode to_sql, au lieu d'obtenir une connexion brute du moteur. Voici le code corrigé :

import pandas as pd
import mysql.connector
from sqlalchemy import create_engine

# Create an SQLAlchemy engine
engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False)

# Read data from the MySQL table
data = pd.read_sql('SELECT * FROM sample_table', engine)

# Write the DataFrame to a new table
data.to_sql(name='sample_table2', con=engine, if_exists='append', index=False)
Copier après la connexion

En utilisant le moteur comme connexion, la connexion SQLAlchemy est correctement établie et l'erreur concernant SQLite est éliminée. Cela permet au DataFrame d'être écrit avec succès dans la table MySQL.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal