SQL の真価はテーブル間のリレーションシップにあり:INNER JOIN
ここでは、初めての INNER JOIN を実行しましょう。おなじみの SQLite データベース Chinook.sqlite を使います。Album テーブルの各レコードについて Title とArtist の Name を取得します。後者のデータは Artist に含まれるため、この 2 つのテーブルを ArtistID 列で INNER JOIN する必要があります。
Northwind データベースの Orders と Customers テーブルを INNER JOIN するために動画内で実行された SQL クエリは以下のとおりです。
"SELECT OrderID, CompanyName FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID"
必要なパッケージのインポートとエンジンの作成には、以下のコードがすでに実行されています。
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:///Chinook.sqlite')
この演習はコースの一部です
Python でのデータインポート入門
演習の手順
- 次のクエリの結果を
rsに代入してください。すべてのレコードを選択し、レコードのTitleと各レコードのアーティストのNameをテーブルAlbumとArtistから 抽出する。そのために、INNER JOINを両テーブルのArtistID列に対して実行しましょう。 pd.DataFrame()の呼び出し内で、fetchall()メソッドをrsに適用し、rsのすべてのレコードを取得してください。取得したデータは DataFramedfに格納します。- DataFrame の列名を、テーブルの列名に対応する名前に設定してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Open engine in context manager
# Perform query and save results to DataFrame: df
with engine.connect() as con:
____
____
____
# Print head of DataFrame df
print(df.head())