본문 바로가기
Python/Pandas

pandas df.to_sql() 함수 활용하기

by PySun 2023. 11. 20.
반응형

df.to_sql() 함수는 Pandas 데이터프레임을 SQL 데이터베이스에 저장하는 데 사용됩니다. 이 함수를 사용하면 데이터프레임을 데이터베이스 테이블에 삽입할 수 있습니다.

메서드 구문:

df.to_sql(
    name,
    con,
    schema=None,
    if_exists='fail',
    index=True,
    index_label=None,
    chunksize=None,
    method=None
)

주요 매개변수:

  • name: 테이블의 이름을 나타내는 문자열.
  • con: 데이터베이스 연결을 나타내는 SQLAlchemy 엔진 또는 데이터베이스 연결 문자열.
  • schema: 데이터베이스 스키마의 이름 (선택 사항).
  • if_exists: 테이블이 이미 존재하는 경우의 동작을 지정. 'fail' (기본값), 'replace', 또는 'append' 중에서 선택할 수 있습니다.
  • index: 데이터프레임의 인덱스를 데이터베이스 테이블에 저장할지 여부를 설정. 기본값은 True입니다.
  • index_label: 인덱스의 열 이름을 지정 (선택 사항).
  • chunksize: 한 번에 쓰기 작업을 수행할 청크 크기를 설정 (선택 사항).
  • method: 쓰기 작업을 수행하는 방법을 지정. 'multi', 'single', 또는 None 중에서 선택할 수 있습니다.

예시 코드:

import pandas as pd
from sqlalchemy import create_engine

# 데이터베이스 연결 생성 (SQLite 예시)
engine = create_engine('sqlite:///mydatabase.db')

# 샘플 데이터프레임 생성
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)

# 데이터프레임을 데이터베이스 테이블로 저장
df.to_sql(name='mytable', con=engine, if_exists='replace', index=False)

# 저장된 데이터베이스 테이블의 데이터를 조회
query = "SELECT * FROM mytable"
result = pd.read_sql(query, con=engine)
print(result)

이 코드에서는 SQLite 데이터베이스를 사용하여 데이터베이스 연결을 생성하고, 샘플 데이터프레임을 데이터베이스 테이블로 저장합니다. 이를 위해 df.to_sql() 메서드를 사용하고, 테이블 이름은 'mytable'로 설정하며, 이미 존재하는 경우 덮어씁니다 (if_exists='replace') 그리고 인덱스는 저장되지 않도록 설정했습니다. 마지막으로, 저장된 데이터베이스 테이블의 데이터를 조회하여 확인합니다.
df.to_sql() 함수를 사용하면 데이터프레임을 다양한 SQL 데이터베이스 시스템에 저장할 수 있으며, 필요에 따라 설정을 조절하여 저장할 수 있습니다.

반응형