目的
在做數(shù)據(jù)分析時(shí),一般需要從數(shù)據(jù)庫中讀取數(shù)據(jù)凉馆,然后再交給算法進(jìn)行分析薪寓,最后將結(jié)果保存亡资。為了簡化分析的過程,我一般會(huì)將數(shù)據(jù)保存在Mysql數(shù)據(jù)庫中向叉,使用SQL進(jìn)行初步處理锥腻、使用MySQL保存中間結(jié)果,可以大大的簡化數(shù)據(jù)的維護(hù)負(fù)擔(dān)母谎。
本文關(guān)注Pandas與MySQL的連接部分
1.安裝驅(qū)動(dòng)
我的環(huán)境是Win10瘦黑,Python35,Pandas0.20奇唤。安裝的MySQL驅(qū)動(dòng)位pymysql幸斥。
pip install sqlalchemy
pip install pymysql
2.創(chuàng)建連接引擎
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')
如果想要使用不同的數(shù)據(jù)庫,如PG冻记,參考sqlalchemy官網(wǎng)睡毒,里面有詳細(xì)的介紹。
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中的內(nèi)容讀取到DataFrame data中。
上下文管理器會(huì)自動(dòng)關(guān)閉連接隅居。