PythonでSQLの結果をpandasのDataFrameに変換する方法を完全解説!初心者でもわかるデータ分析入門
生徒
「Pythonでデータベースからデータを取り出したあと、表みたいに見やすく扱う方法はありますか?」
先生
「ありますよ。SQLの実行結果をpandasのDataFrameに変換すると、表計算ソフトのように扱えます。」
生徒
「pandasやDataFrameって、何をするものなんですか?」
先生
「データを表の形で整理して、並び替えや確認がしやすくなる便利な道具だと思ってください。」
1. pandasとDataFrameとは何か
pandasは、Pythonでデータを扱うためのライブラリです。ライブラリとは、便利な機能をまとめた道具箱のようなものです。DataFrameはpandasの中心的なデータ構造で、行と列を持つ表の形をしています。紙の表やエクセルのシートを思い浮かべると理解しやすいです。
2. SQLの結果をDataFrameに変換するメリット
SQLで取得したデータは、そのままだとプログラム初心者には扱いづらい形になりがちです。DataFrameに変換すると、データの中身を一覧で確認でき、列ごとに意味を理解しやすくなります。データベース操作とデータ分析をつなぐ役割を果たします。
3. SQLiteとpandasを使う基本準備
ここでは、Pythonに最初から入っているsqlite3と、追加で使うpandasを利用します。SQLiteは軽量なデータベースで、ファイル一つで管理できます。まずはデータベースに接続し、SQLを実行する準備をします。
import sqlite3
import pandas as pd
conn = sqlite3.connect("sample.db")
4. read_sql_queryで簡単にDataFrameへ変換
pandasには、SQLの結果をそのままDataFrameに変換できる便利な関数があります。read_sql_queryを使うと、SQL文と接続情報を渡すだけで表が完成します。難しい処理を書かなくて済むのが特徴です。
sql = "SELECT id, name FROM users"
df = pd.read_sql_query(sql, conn)
print(df)
id name
0 1 田中
1 2 佐藤
5. read_sql_tableを使ったテーブル指定の方法
SQL文を書くのが不安な場合は、テーブル名を直接指定する方法もあります。read_sql_tableは、テーブル全体をDataFrameとして読み込みます。列名も自動で設定されるため、初心者でも安心です。
df = pd.read_sql_table("users", conn)
print(df.head())
6. DataFrameで中身を確認する基本操作
DataFrameに変換したあとは、内容を確認することが大切です。先頭だけを見る、列名を確認するなど、表として眺める感覚で操作できます。これにより、SQLの結果が正しいかすぐに判断できます。
print(df.columns)
print(df.head())
7. よくあるつまずきポイントと注意点
データベース接続を閉じ忘れると、ファイルが使えなくなることがあります。処理が終わったら接続を終了しましょう。また、pandasがインストールされていないとエラーが出ます。エラーは失敗ではなく、原因を教えてくれるサインだと考えると安心です。
conn.close()