파이썬으로 관계형 데이터베이스 질의하기

Python에서 데이터 가져오기 입문

Hugo Bowne-Anderson

Data Scientist at DataCamp

기본 SQL 쿼리

SELECT * FROM Table_Name
  • 테이블의 모든 행과 모든 열 반환
  • 예:
SELECT * FROM Orders
  • SQLAlchemy와 pandas를 사용합니다
Python에서 데이터 가져오기 입문

SQL 쿼리 워크플로우

  • 패키지와 함수 임포트
  • 데이터베이스 엔진 생성
  • 엔진에 연결
  • 데이터베이스 쿼리
  • 결과를 DataFrame에 저장
  • 연결 닫기
Python에서 데이터 가져오기 입문

첫 번째 SQL 쿼리

from sqlalchemy import create_engine
import pandas as pd

engine = create_engine('sqlite:///Northwind.sqlite')
con = engine.connect()
rs = con.execute("SELECT * FROM Orders")
df = pd.DataFrame(rs.fetchall())
con.close()
Python에서 데이터 가져오기 입문

쿼리 결과 출력하기

print(df.head())
       0      1   2                      3                      4 
0  10248  VINET   5   7/4/1996 12:00:00 AM   8/1/1996 12:00:00 AM   
1  10251  VICTE   3   7/8/1996 12:00:00 AM   8/5/1996 12:00:00 AM   
2  10254  CHOPS   5  7/11/1996 12:00:00 AM   8/8/1996 12:00:00 AM   
3  10256  WELLI   3  7/15/1996 12:00:00 AM  8/12/1996 12:00:00 AM   
4  10258  ERNSH   1  7/17/1996 12:00:00 AM  8/14/1996 12:00:00 AM
Python에서 데이터 가져오기 입문

DataFrame 열 이름 설정

from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('sqlite:///Northwind.sqlite')
con = engine.connect()
rs = con.execute("SELECT * FROM Orders")
df = pd.DataFrame(rs.fetchall())
df.columns = rs.keys()
con.close()
Python에서 데이터 가져오기 입문

데이터프레임 열 이름 설정

print(df.head())
   OrderID CustomerID  EmployeeID              OrderDate  
0    10248      VINET           5   7/4/1996 12:00:00 AM   
1    10251      VICTE           3   7/8/1996 12:00:00 AM   
2    10254      CHOPS           5  7/11/1996 12:00:00 AM   
3    10256      WELLI           3  7/15/1996 12:00:00 AM   
4    10258      ERNSH           1  7/17/1996 12:00:00 AM
Python에서 데이터 가져오기 입문

컨텍스트 매니저 사용하기

from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('sqlite:///Northwind.sqlite')
with engine.connect() as con:
    rs = con.execute("SELECT OrderID, OrderDate, ShipName FROM Orders")
    df = pd.DataFrame(rs.fetchmany(size=5))
    df.columns = rs.keys()
Python에서 데이터 가져오기 입문

Vamos praticar!

Python에서 데이터 가져오기 입문

Preparing Video For Download...