Pandas DataFrame을 MySQL에 저장하는 방법

Pandas DataFrame을 MySQL에 저장하기 위해 먼저 커넥터가 필요합니다. 파이썬3에서는 MySQLdb를 지원하지 않기 때문에, pymysql로 불러와야 합니다. 꼭 pymysql이 아니어도 상관없지만, 사용해보면 mysql-connector 보다 빠르다는걸 체감할 수 있습니다. 먼저, 필요한 패키지를 설치해줍니다.

# python3
$ pip install pymysql
$ pip install sqlalchemy

SQLAlchemy, pymysql, MySQLdb

install_as_MySQLdb() 함수를 통해 MySQLdb와 호환 가능합니다. 이제 sqlalchemy를 통해 DB에 연결할 수 있습니다. 주소에서 root, password는 DB에 맞게 변경해야 합니다.

import pandas as pd
from sqlalchemy import create_engine

# MySQL Connector using pymysql
pymysql.install_as_MySQLdb()
import MySQLdb

engine = create_engine("mysql+mysqldb://root:"+"password"+"@localhost/db_name", encoding='utf-8')
conn = engine.connect()

MySQL에 저장하기

이제 DataFrame을 MySQL에 테이블 형태로 저장할 차례입니다. 아래와 같이 pandas의 to_sql() 함수를 사용하여 저장하면 됩니다.

df.to_sql(name=table, con=engine, if_exists='append')

자주 사용할 수 있으니 함수로 따로 설정해주면 편합니다.