[解決済み] PostgresのテーブルにDataFrameを書き込むには?
2022-06-10 21:38:14
質問
あるのは データフレーム.to_sql メソッドがありますが、これは mysql, sqlite, oracle データベースに対してのみ動作します。このメソッドにpostgresの接続やsqlalchemyのエンジンを渡すことはできません。
どのように解決するのですか?
pandas 0.14(2014年5月末リリース)より、postgresqlがサポートされました。そのため
sql
モジュールが
sqlalchemy
を使って、異なるデータベースフレーバーをサポートするようになりました。postgresql データベースのために sqlalchemy エンジンを渡すことができます (
docs
). 例.
from sqlalchemy import create_engine
engine = create_engine('postgresql://username:password@localhost:5432/mydatabase')
df.to_sql('table_name', engine)
pandasの0.13.1までのバージョンではpostgresqlはサポートされていないのは正しいです。古いバージョンのpandasを使用する必要がある場合は、以下のパッチを適用した
pandas.io.sql
:
https://gist.github.com/jorisvandenbossche/10841234
.
これは昔書いたものなので、常に動作することを完全に保証するものではありませんが、基本はあるはずです)。そのファイルを作業ディレクトリに置いて、インポートすれば、(ここで
con
はpostgresqlの接続です)。
import sql # the patched version (file is named sql.py)
sql.write_frame(df, 'table_name', con, flavor='postgresql')
関連
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] Pandas DataFrameからカラムを削除する
-
[解決済み] 一行ずつ追加してPandas Dataframeを作成する
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
Python LeNetネットワークの説明とpytorchでの実装
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】インポートエラー。モジュール名 urllib2 がない