PythonでSqlAlchemyを使用しデータベースから列を選択しデータを取得する

スポンサーリンク

PythonでSqlAlchemyを使用しデータベースから列を選択しデータを取得してみます。

この記事は「PythonでSqlAlchemyを使用しデータベースからデータを取得する」という記事の続きです。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■仮想環境に入る

PythonでSqlAlchemyを使用しデータベースからデータを取得するという記事で、仮想環境の構築をしましたので、まずは仮想環境に入ります。

C:\Users\user_>cd sql_data

Windows10のコマンドプロンプトを起動後、上記のコマンドを入力し、Enterキーを押します。「cd」コマンドで「sql_data」ディレクトリ内に移動します。

C:\Users\user_\sql_data>.venv\Scripts\activate.bat

移動後、上記のコマンドを入力し、Enterキーを押します。仮想環境のディレクトリ内に作成された activateスクリプトを実行し、仮想環境に入ります。

(.venv) C:\Users\user_\sql_data>

Enterキーを押すと、「(.venv)」と表示されます。これで仮想環境に入ることができました。

■Pandasのインストール

仮想環境に入った後に、今回はデータベースから列を選択しデータを取得しますが、データベース内のデータを読み込み、データフレームを作成し出力しますので、データフレームの作成のために、Pandasパッケージ,ライブラリのインストールします。

(.venv) C:\Users\user_\sql_data> pip install pandas

インストールのために、上記のコマンドを入力し、Enterキーを押します。これでpipを経由してPandasをインストールします。

Enterキーを押すと、インストールが開始され、「Successfully installed(正常にインストールされました)」と出力されます。これが出力されれば正常にインストールは完了となります。

■SqlAlchemyを使用しデータベースから列を選択しデータを取得する

インストール後、SqlAlchemyとPandasを使用しデータベースから列を選択しデータを取得するスクリプトを書いていきます。

■コード

from sqlalchemy import create_engine
import pandas as pd

engine = create_engine('sqlite:///C:\\Users\\user_\\sql_data\\test_data.db')

query = """
SELECT name
  FROM items;
"""
temperatures = pd.read_sql(query,engine)

print(temperatures)

今回「from import」でsqlalchemyのcreate_engineを呼び出します。さらに「import」でpandasを”pd”「as(として)」用います。その後、engineという変数を定義し、その中でcreate_engine()を用います。括弧内の引数,パラメータとして、作成したデータベースを渡します。これでデータベースとの接続が行われます。なお、PythonでSQLAlchemyを使用しローカルに保存したSQLite3のdbファイルにパスを通す場合にはこちらを参照ください。

次にqueryという変数を定義し、その中でデータベース操作するためにSELECT文を用います。まずは「FROM」で、PythonでSqlAlchemyを使用しデータベースからデータを取得するという記事で、データベース内のテーブルを「items」という名前にしましたので、これを設定します。そして、「SELECT」でテーブル内の列を抽出するために「items」内に作成した列(カラム)である「name」を設定します。これでデータベースから列(カラム)を抽出できます。

その後、temperaturesという変数を定義し、pd.read_sql()を用います。括弧内の第1の引数,パラメータとして実行するSQLクエリまたはテーブル名を渡します。今回はquery変数を渡します。次に第2の引数,パラメータとしてDB(データベース)を渡します。今回はengine変数を渡します。これでSQLクエリ、データベーステーブルをDataFrameに読み込むことができます。DataFrameはtemperatures変数に格納されます。

最後にtemperatures変数をprint()で出力させます。

C:\Users\user_\sql_data>

このスクリプトを上記の場所に「get_sql_data2.py」という名前で保存します。

■実行・検証

(.venv) C:\Users\user_\sql_data>python get_sql_data2.py

コードを記述後、スクリプトファイルを保存し、Windows10のコマンドプロンプトを起動し、仮想環境へ入り、スクリプトファイルを実行します。

実行してみると、SqlAlchemyとPandasを使用しデータベースから列を選択しデータを取得し、取得したデータをDataFrameで出力させることができました。

コメント

タイトルとURLをコピーしました