0Pricing
Learn AI with Python · 강의

Pandas와 SQL 통합

pd.read_sql(), df.to_sql(), SQLAlchemy 엔진을 사용해 데이터베이스 결과를 DataFrames로 직접 가져옵니다.

Pandas와 SQL 통합은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

pandas와 SQL의 만남

SQL과 pandas 중 하나만 선택할 필요는 없습니다. 둘은 함께 사용할 수 있습니다. 데이터베이스를 질의해 DataFrame으로 가져오고, pandas로 변환한 다음 결과를 다시 저장합니다.

이를 연결하는 도구는 SQLAlchemy와 pandas 함수인 read_sql 및 to_sql입니다.

SQLAlchemy를 사용하는 이유

pandas는 연결 또는 SQLAlchemy 엔진을 통해 데이터베이스와 통신합니다. 엔진이 데이터베이스 종류를 추상화하므로 URL만 바꾸면 같은 코드가 SQLite, PostgreSQL, MySQL 등에서 작동합니다.

엔진 생성하기

create_engine은 연결 URL을 받습니다. URL 스킴이 데이터베이스 드라이버를 식별합니다.

from sqlalchemy import create_engine

engine = create_engine("sqlite:///ml.db")
# Postgres: create_engine("postgresql://user:pass@host:5432/db")

pd.read_sql로 표 읽기

pd.read_sql은 질의를 실행하거나 표를 읽고 DataFrame을 반환합니다. SQL 문자열과 엔진을 전달합니다.

import pandas as pd

df = pd.read_sql("SELECT * FROM experiments", engine)
print(df.head())

필터링된 질의로 읽기

필터링과 집계는 데이터베이스에서 처리한 다음 더 작은 결과를 pandas에 전달하십시오. 모든 데이터를 불러오는 것보다 훨씬 효율적입니다.

df = pd.read_sql(
    "SELECT name, accuracy FROM experiments WHERE accuracy > 0.85 ORDER BY accuracy DESC",
    engine,
)
print(df)

매개변수화된 질의

문자열을 서식 지정하는 대신 params 인수를 사용해 질의 매개변수를 안전하게 전달합니다.

from sqlalchemy import text

df = pd.read_sql(
    text("SELECT * FROM experiments WHERE name = :n"),
    engine,
    params={"n": "xgb"},
)

df.to_sql로 DataFrame 저장하기

df.to_sql(table, engine)은 DataFrame을 데이터베이스 표에 저장합니다. 필요한 경우 DataFrame의 자료형에서 표를 생성합니다.

df.to_sql("results", engine, index=False)

인덱스 매개변수

기본적으로 to_sql은 DataFrame 인덱스를 열로 저장합니다. 보통은 이를 원하지 않으므로 index=False를 전달해 건너뜁니다.

df.to_sql("results", engine, index=False)   # no extra index column

기존 표가 있을 때의 동작 매개변수

if_exists는 표가 이미 있을 때의 동작을 제어합니다.

  • "fail" — 오류 발생(기본값)
  • "replace" — 표를 삭제하고 다시 생성
  • "append" — 기존 표에 행 추가
df.to_sql("results", engine, if_exists="append", index=False)
# Use "replace" to overwrite, "fail" to be safe

왕복 작업 과정

일반적인 처리 과정은 SQL에서 원시 데이터를 읽고, pandas에서 변환한 다음, 정제된 결과를 새 표에 다시 저장하는 것입니다.

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("sqlite:///ml.db")
raw = pd.read_sql("SELECT * FROM experiments", engine)
raw["accuracy_pct"] = (raw["accuracy"] * 100).round(1)
raw.to_sql("experiments_clean", engine, if_exists="replace", index=False)

대형 표를 위한 묶음 단위 읽기

메모리에 담기에는 너무 큰 표의 경우 chunksize를 read_sql에 전달하면 결과를 묶음 단위로 순회할 수 있습니다.

for chunk in pd.read_sql("SELECT * FROM big_table", engine, chunksize=10000):
    process(chunk)   # handle 10k rows at a time

빠른 확인: 행 추가하기

표를 삭제하지 않고 기존 표에 새 행을 추가하도록 to_sql을 사용하려고 합니다.

복습: pandas와 SQL

이제 pandas와 데이터베이스 사이에서 데이터를 이동할 수 있습니다.

  • 데이터베이스 종류에 독립적인 연결을 위한 create_engine(url)
  • 질의 결과를 DataFrame으로 불러오는 pd.read_sql(query, engine)
  • 결과를 다시 저장하는 df.to_sql(table, engine, index=False, if_exists=...)
  • 안전성과 확장성을 위한 매개변수화된 질의와 chunksize

다음 단계에서는 머신러닝 실험 결과를 저장하고 조회합니다.

자주 묻는 질문

“Pandas와 SQL 통합” 강의는 무료인가요?

네 — “Pandas와 SQL 통합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“Pandas와 SQL 통합”에서 뭘 배우나요?

pd.read_sql(), df.to_sql(), SQLAlchemy 엔진을 사용해 데이터베이스 결과를 DataFrames로 직접 가져옵니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“Pandas와 SQL 통합” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Python의 sqlite3 모듈과 SQLite
  2. Pandas와 SQL 통합
  3. 머신러닝 결과 저장 및 조회
  4. 벡터 데이터베이스 입문
← Learn AI with Python(으)로 돌아가기