SQL 的强大之处在于表之间的关系:INNER JOIN
在这里,您将执行第一个 INNER JOIN!您将使用常用的 SQLite 数据库 Chinook.sqlite。对 Album 表中的每条记录,提取其 Title,同时提取对应艺人的 Name。后者来自 Artist 表,因此需要在两个表的 ArtistID 列上执行 INNER JOIN。
回忆一下,为了在 Northwind 数据库中 INNER JOIN Orders 和 Customers 表,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:select 所有记录,分别从Album表和Artist表中提取每条记录的Title和艺人的Name。为此,请在两个表的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())