ChatGPTにpandasデータフレームをSQLiteに保存して後から再読み込みできるようなコードを書いてもらった

ChatGPTにpandasデータフレームをSQLiteに保存して後から再読み込みできるようなコードを書いてもらいました。

ChatGPTへの指示文:

PythonのpandasでデータフレームをSQLiteに保存して、後から再読み込みできるようなコードを書いてください。すでにtableが存在していた場合、上書きするようにしてください。

回答:

以下は、Pythonのpandasライブラリを使用してデータフレームをSQLiteデータベースに保存し、後で再読み込みするためのコードの例です。


import pandas as pd
import sqlite3

# データフレームを作成
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
                   'Age': [25, 30, 35],
                   'City': ['New York', 'Los Angeles', 'Chicago']})

# SQLiteデータベースに接続
conn = sqlite3.connect('example.db')

# データフレームをSQLiteに保存/テーブルが存在すれば上書き保存
df.to_sql('example_table', conn, if_exists='replace', index=False)

# データベースとの接続を閉じる
conn.close()

# データベースからデータフレームを再読み込み
conn = sqlite3.connect('example.db')
df_loaded = pd.read_sql('SELECT * FROM my_table', conn)

# データベースとの接続を閉じる
conn.close()

# 読み込んだデータフレームを表示
print(df_loaded)

        

このコードでは、to_sqlメソッドを使用してデータフレームをSQLiteデータベースに保存し、read_sql関数を使用してデータベースからデータフレームを再読み込みしています。index=Falseを指定することで、データベースにインデックスを保存しないようにしています。また、データベースへの接続と切断は、sqlite3ライブラリを使用して行われています。保存したデータフレームは、df_loadedという新しいデータフレームに再読み込まれます。最後に、print(df_loaded)を使用して読み込まれたデータフレームを表示しています。必要に応じて、データベースのファイル名やテーブル名を変更することができます。また、SQL文を使用してデータベースからデータを取得する際には、適宜SQLクエリを変更してください。詳細については、pandasの公式ドキュメントを参照してください。`

結果:

以下のように一発で成功しました。

DBをSQLiteとしたのは簡易で使い勝手が良いので。大規模なデータセットを扱う際はMySQLとかでも可。