xlsxファイルからmysqdlテーブルにデータを挿入しようとしています。私はテーブルにデータを挿入したいと主キーに重複がある場合、私は既存のデータを更新したい場合は挿入します。私はすでにスクリプトを書いていますが、それはあまりにも多くの作業であり、パンダを使用することが迅速であることを認識しました。私はどのようにパンダでそれを達成できますか?pandasを使用してmysqlに挿入または更新する場合
#!/usr/bin/env python3
import pandas as pd
import sqlalchemy
engine_str = 'mysql+pymysql://admin:[email protected]/mydb'
engine = sqlalchemy.create_engine(engine_str, echo=False, encoding='utf-8')\
file_name = "tmp/results.xlsx"
df = pd.read_excel(file_name)
SQLクエリ自体を避けようとしているのは、クエリを作成してデータベースに挿入する前によくExcelにエスケープされる列の値があるからです。ランダムな値(またはガベージデータ)のエスケープを回避するSQLクエリを実行するのではなく、pandasを使用して直接データを挿入する方法がある場合、pandasは列の値を非常に効率的に処理するので、私が望んでいたこと。 – r0xette
@ r0xetteなぜSQLクエリを使用できないのか分かりません。列名などを変更できないのですか?いずれにしても、 'sqlalchemy'を使用すると、明示的なSQL文字列クエリを避けることができます。 AFAIK、Pandasには行を更新するかどうかを挿入するネイティブな方法がありません – cd98
私はSQLクエリーを使用しています。ネイティブにアップサンプリングを実行して、悪いデータを自動的にエスケープできる方法があれば、私が望んでいたことです。 – r0xette