ホームページ >データベース >mysql チュートリアル >SQLAlchemy を使用して Pandas DataFrame を MySQL に正しく書き込む方法
MySQL で SQLAlchemy を使用して Pandas DataFrame を MySQL に書き込む
to_sql メソッドを使用して MySQL テーブルに pandas DataFrame を書き込もうとするとき非推奨の「flavor='mysql」構文からの移行推奨される SQLAlchemy エンジンのアプローチを使用すると、次のようなエラーが発生する可能性があります。
DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Wrong number of arguments during string formatting
このエラーは、MySQL の代わりに SQLite が使用されていることを示唆しています。これを解決するには、MySQL、特に mysql.connector との SQLAlchemy 接続が正しく使用されていることを確認します。
解決策
エラーは、で作成されたエンジンを使用することで解決できます。エンジンから生の接続を取得するのではなく、SQLAlchemy を to_sql メソッドの接続として直接使用します。修正されたコードは次のとおりです。
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)
エンジンを接続として使用することで、SQLAlchemy 接続が適切に確立され、SQLite に関するエラーが解消されます。これにより、DataFrame を MySQL テーブルに正常に書き込むことができます。
以上がSQLAlchemy を使用して Pandas DataFrame を MySQL に正しく書き込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。