PythonでSQLiteのデータを読み込む方法
今回は、PythonからSQLiteのデータベースにアクセスしてSQLの実行してデータを読み込む方法を紹介します。
Pythonでデータを読み込んで処理するメリットは次の点が挙げられます。
- PythonのPandasライブラリでは、データを効率的に処理するための便利な機能が多く提供されている
- Pythonには機械学習を適用するためのライブラリも用意されている
- その他、プログラミング言語として、SQLよりもできることが多い
関連するトピックについて、過去の記事で紹介していますので、よろしければ併せてご参照ください。
データサイエンティストを目指す方向け Pythonセットアップ方法(Windows版) - Kevin's Data Analytics Blog
Jupyter Notebook:データサイエンティストを目指す方にオススメのPython実行環境 - Kevin's Data Analytics Blog
【初心者向け】Pandas入門 これだけは押さえておくべき基本操作|データ分析で必須 - Kevin's Data Analytics Blog
ライブラリのインポート
PythonでSQLiteデータを読み込むため、Pandasとsqlite3を使用します。どちらのライブラリも標準ライブラリのため追加インストールは不要です。
import pandas as pd import sqlite3
SQLiteに接続
sqlite3.connect関数を使用して、SQLiteのデータファイルに接続します。関数の引数にデータファイルのパスを指定します。
conn = sqlite3.connect('../data/zenkoku.sqlite3')
なお、zenkoku.sqlite3は、以下のサイトから取得しました。
住所データSQL【住所.jp】
Pandasでデータの読み込み
read_sql_query関数を使用して、データベースに対してSQLを実行します。第一引数にselect文を記述し、第二引数には先ほど接続時に作成した「conn」を指定します。
data1 = pd.read_sql_query('select * from ad_address', conn)
データの中身を確認します。
data1
データフレームの形式で読み込むことが出来ました。
改行を含む長いSQL文を記述する場合は、変数にSQL文を格納します。シングルクォーテーション3つで囲みます。
query_text=''' select zip ,ken_name ,city_name ,town_name ,office_name ,office_address from ad_address where ken_name = "東京都" and office_flg = 1 '''
同様に、read_sql_query関数を使用して、データベースに対してSQLを実行します。第一引数には、SQL文を格納した変数(query_text)を指定します。
data2 = pd.read_sql_query(query_text, conn)
データの中身を確認します。
data2
クエリが実行され、クエリのwhere句に指定した条件(東京都で、office_flg=1)の住所を抽出できました。