始める無料で始める

pandas と SQLクエリの第一歩!

ここでは、pandas の機能を活用して、SQL クエリの結果を1行の Python コードで DataFrame に書き込みます。

まず pandas をインポートし、SQLite の 'Chinook.sqlite' エンジンを作成します。次に、データベースに対してクエリを実行し、Album テーブルからすべてのレコードを取得します。

Northwind データベースの Orders テーブルからすべてのレコードを取得するために動画内で実行されたコマンドを思い出しましょう。

df = pd.read_sql_query("SELECT * FROM Orders", engine)

この演習はコースの一部です

Python でのデータインポート入門

コースを見る

演習の手順

  • pandas パッケージをエイリアス pd を用いてインポートしましょう。
  • create_engine() 関数を使って、SQLite データベース Chinook.sqlite のエンジンを作成し、変数 engine に代入しましょう。
  • pandasread_sql_query() 関数を使って、変数df に次のクエリの結果のDataFrameを代入しましょう: テーブル Album から すべてのレコードを選択する
  • 残りのコードは、この方法で作成した DataFrame が以前学んだ方法で作成したものと同じであることを確認するためのものです。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Import packages
from sqlalchemy import create_engine
import ____ as ____

# Create engine: engine


# Execute query and store records in DataFrame: df
df = pd.read_sql_query(____, ____)

# Print head of DataFrame
print(df.head())

# Open engine in context manager and store query result in df1
with engine.connect() as con:
    rs = con.execute("SELECT * FROM Album")
    df1 = pd.DataFrame(rs.fetchall())
    df1.columns = rs.keys()

# Confirm that both methods yield the same result
print(df.equals(df1))
コードを編集して実行