SQL의 강점은 테이블 간 관계에 있습니다: INNER JOIN
이번에는 첫 번째 INNER JOIN을 수행해 보겠습니다! 익숙한 SQLite 데이터베이스 Chinook.sqlite를 사용할 거예요. Album 테이블의 각 레코드에 대해, Title과 해당 Artist의 Name을 추출합니다. Name은 Artist 테이블에서 가져와야 하므로, 두 테이블의 ArtistID 열을 기준으로 INNER JOIN 해야 합니다.
Northwind 데이터베이스에서 Orders와 Customers 테이블을 INNER JOIN 하기 위해 Hugo가 실행했던 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에 할당하세요:Album테이블과Artist테이블에서 각각 레코드의Title과 아티스트의Name을 추출해 모든 레코드를 select 합니다. 이를 위해 두 테이블을 공통 열인ArtistID로INNER JOIN하세요. pd.DataFrame()호출에서rs에fetchall()메서드를 적용해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())