데이터베이스 소개

pandas로 빠르고 간편한 데이터 적재

Amany Mahfouz

Instructor

관계형 데이터베이스

  • 엔터티 데이터는 테이블에 저장됩니다
  • 각 행(레코드)은 엔터티의 한 인스턴스입니다
  • 각 열은 속성 정보를 담습니다
  • 테이블은 고유 키로 서로 연결됩니다
  • 더 많은 데이터, 동시 사용자, 데이터 품질 관리 지원
  • 각 열에 데이터 타입 지정
  • 데이터베이스와 상호작용에는 SQL(구조적 질의 언어) 사용
pandas로 빠르고 간편한 데이터 적재

주요 관계형 데이터베이스

Microsoft SQL Server 로고

Oracle 로고

  • SQLite 데이터베이스는 컴퓨터 파일입니다

PostgreSQL 로고

SQLite 로고

pandas로 빠르고 간편한 데이터 적재

데이터베이스 연결

  • 두 단계 과정:
    1. 데이터베이스 연결 방법 만들기
    2. 데이터베이스 쿼리 실행

데이터베이스 클립 아트

pandas로 빠르고 간편한 데이터 적재

데이터베이스 엔진 생성

SQLAlchemy 로고

  • sqlalchemy의 create_engine()은 데이터베이스 연결을 처리하는 엔진을 생성합니다
    • 연결할 데이터베이스의 문자열 URL이 필요
    • SQLite URL 형식: sqlite:///filename.db
pandas로 빠르고 간편한 데이터 적재

데이터베이스 쿼리

  • 데이터베이스에서 데이터를 불러오려면 pd.read_sql(query, engine) 사용
  • 인수
    • query: 실행할 SQL 쿼리 문자열 또는 로드할 테이블명
    • engine: 연결/데이터베이스 엔진 객체
pandas로 빠르고 간편한 데이터 적재

SQL 복습: SELECT

  • 데이터베이스에서 조회에 사용
  • 기본 문법:
    SELECT [column_names] FROM [table_name];
    
  • 테이블의 모든 데이터 가져오기:
    SELECT * FROM [table_name];
    
  • 코드 스타일: 키워드는 대문자, 문장 끝에 세미콜론(;)
pandas로 빠르고 간편한 데이터 적재

데이터베이스에서 데이터 가져오기

# pandas와 sqlalchemy의 create_engine 불러오기
import pandas as pd
from sqlalchemy import create_engine

# 연결을 관리할 데이터베이스 엔진 생성 engine = create_engine("sqlite:///data.db")
# 테이블명으로 weather 전체 로드 weather = pd.read_sql("weather", engine)
pandas로 빠르고 간편한 데이터 적재
# 연결을 관리할 데이터베이스 엔진 생성
engine = create_engine("sqlite:///data.db")

# SQL로 weather 테이블 전체 로드 weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
pandas로 빠르고 간편한 데이터 적재

연습해 봅시다!

pandas로 빠르고 간편한 데이터 적재

Preparing Video For Download...