[Python] SQLAlchemy 사용하기

DataFrame을 MySQL에 저장하기 위해 먼저 엔진 커넥터가 필요합니다. 파이썬3에서는 MySQLdb를 지원하지 않기 때문에, pymysql로 불러와야 합니다. 꼭 pymysql이 아니어도 상관없지만, 사용해보면 mysql-connector 보다 빠르다는걸 체감할 수 있습니다. 먼저, 필요한 패키지를 설치해줍니다.
1
2
3
# python3
pip install pymysql
pip install sqlalchemy
SQLAlchemy, Pymysql, MySQLdb
install_as_MySQLdb() 함수를 통해 MySQLdb와 호환 가능합니다. 이제 sqlalchemy를 통해 DB에 연결할 수 있습니다. 주소에서 root, password는 DB에 맞게 변경해야 합니다.
1
2
3
4
5
6
7
8
9
import pandas as pd
from sqlalchemy import create_engine

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

engine = create_engine("mysql://root:"+"password"+"@public IP/db_name", encoding='utf-8')
conn = engine.connect()
MySQL에 저장하기
이제 DataFrame을 MySQL에 테이블 형태로 저장할 차례입니다. 아래와 같이 pandas의 to_sql() 함수를 사용하여 저장하면 됩니다.
1
df.to_sql(name=table_name, con=engine, if_exists='append')
자주 사용할 수 있으니 함수로 따로 설정해주면 원할 때마다 쉽게 사용할 수 있겠죠? 그리고 if_exists의 경우 만약 동일 테이블의 이름이 존재한다면 어떻게 처리하겠느냐의 파라미터를 주는 것인데 append 외에도 replace, delete 등 다양한 것이 있습니다.
You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.