目的
在做数据分析时,一般需要从数据库中读取数据,然后再交给算法进行分析,最后将结果保存。为了简化分析的过程,我一般会将数据保存在Mysql数据库中,使用SQL进行初步处理、使用MySQL保存中间结果,可以大大的简化数据的维护负担。
本文关注Pandas与MySQL的连接部分
1.安装驱动
我的环境是Win10,Python35,Pandas0.20。安装的MySQL驱动位pymysql。
pip install sqlalchemy
pip install pymysql
2.创建连接引擎
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')
如果想要使用不同的数据库,如PG,参考sqlalchemy官网,里面有详细的介绍。
3.与MySQL交互
第一种方式:
conn = engine.connect()
data = pd.read_sql_table('data', conn)
data
第二种方式,使用上下文管理器
with engine.connect() as conn, conn.begin():
data = pd.read_sql_table('data', conn)
data
到此,我们成功的将MySQL中的表data中的内容读取到DataFrame data中。
上下文管理器会自动关闭连接。