[OK]をクリックすると、質問に含まれる情報がまったくなくても完全な回答が得られませんが、どうすればこの問題に対処できるか説明していきます。
おそらく最も簡単な方法は、更新する行ごとに個別のUPDATE
クエリを自動的に書き込むことです。私が誤解していないなら、これはデータベース側では比較的効率的ですが、Pythonプログラムではオーバーヘッドが発生します。私はデータベースの人ではありませんが、あなたの質問ではパフォーマンスの最適性について言及していないので、私は今のところうまくいくソリューションがあればいいと思います。
データベースとのやりとりを処理するためにsqlalchemyを使用します。コードをコピーしたい場合は、sqlalchemyをインストールして、コードにモジュールをインポートする必要があります。
まず、sqlalchemyエンジンを作成する必要があります。私はローカルデータベースを使用していると仮定します。そうでなければ、この部分を編集する必要があります。
engine = sqlalchemy.create_engine('mysql://localhost/yourdatabase')
は今、私も何もあなたの時間の形式を知っていますか私は更新したい列の名前がわからないので、私はプレースホルダを使用します(すべての私たちのクエリを含む文字列を作成することができますありませんインデックス、私は推測する必要があります):
queries = ''
for index, value in MA30.iterrows():
queries += 'UPDATE feeder_ndmc_copy SET column_name = {} WHERE index_column_name = {};\n'.format(value, index.strftime(%Y-%m-%d %H:%M:%S))
あなたの要件に合わせてこの部分を大きく調整する必要があります。私はあなたのデータベースの適切なスキーマを提供しなければ、それ以上のことはできません。完全なクエリのリストで
、我々はSQLにデータを入れて進みます
with engine.connect() as connection:
with engine.begin():
connection.execute(queries)
編集:
明らかに私の解決策は、あなたのパンダの場合のようなものをどのような方法で対処していませんmysqlにないタイムスタンプのデータポイントを作成する操作などがあります。そのことを覚えておく必要があります。それが問題であれば、フォームのクエリを使用する必要があります
INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);
あなたはpythonから得ている正確なエラーは何ですか?これはMySQL CLIから機能しますか? – Claris
エラーメッセージとスタックトレースを投稿してください。あなたが投稿したものは、スタックトレースのほんの一部にしか見えません。また、あなたの例は完全ではありません。人々があなたの手助けをしやすくする方法については、http://stackoverflow.com/help/mcveをご覧ください。一つのことは、SQLクエリに変数 'MA30'を挿入しようとしているようです。この方法については、文字列MA30を挿入するようにSQL APIに指示します。データベースのスキーマを知らなくても、あなたのためにクエリを作成するのはちょっと難しいです。 – sobek
私はMysqlの使い方がわかりません。私はこの分野に新しいです。 @Claris – user7400738