메소드 관련 문서 : Docs
설명 : Pandas 데이터프레임을 SQL 데이터베이스의 테이블로 저장하기 위해 사용됩니다. 일반적으로 SQLAlchemy를 사용하여 데이터베이스 연결을 설정하고 데이터를 데이터베이스로 쓰는 데 사용됩니다.
사용법
dataframe.to_sql( name = [테이블 이름], con = [sqlalchemy_connector], if_exists = [옵션] )
예시 코드
# 1) sqlalchemy 커넥션 생성
from sqlalchemy import create_engine
import pandas as pd
engine = 'postgresql'
user = 'user_id'
passwd = 'password'
host = 'localhost'
port = '5432'
db_name = 'postgres'
db = create_engine(f'{engine}://{user}:{passwd}@{host}:{port}/{db_name}')
# 2) Data Import
df = pd.read_csv('names.csv')
# 3) Data Bulk Insert
df.to_sql(name='point', con=db, if_exists='replace')
# fail : 테이블 존재하면 실패
# append : 테이블 존재하면 아래에 row 추가
# replace : 테이블 존재하면 명령 내린 테이블 데이터로 교체
메소드 관련 문서 : Docs
설명 : SQLAlchemy를 사용하여 데이터를 데이터베이스 테이블에 삽입하기 위한 고성능 메서드입니다.
사용법
execute_values(cur = [connector], sql = [INSERT 쿼리], argslist = [value 리스트])
예시 코드
# 1) psycopg2 커넥션 생성
import psycopg2
db = psycopg2.connect(host='localhost', dbname='postgres', user='hyunsoo', password='150808', port=5432)
cursor=db.cursor()
# 2) Data Import
df = pd.read_csv('names.csv')
insert_list = [tuple(df.iloc[i]) for i in range(len(df))]
# 3) Data Bulk Insert
from psycopg2.extras import execute_values
sql = f"INSERT INTO lecture VALUES %s;"
execute_values(cursor, sql, insert_list)