將pandas的DataFrame數據寫入MySQL數據庫 + sqlalchemy
- import pandas as pd
- from sqlalchemy import create_engine
- ##將數據寫入mysql的數據庫,但需要先通過sqlalchemy.create_engine建立連接,且字符編碼設置為utf8,否則有些latin字符不能處理
- yconnect = create_engine('mysql+mysqldb://root:password@localhost:3306/databasename?charset=utf8')
- pd.io.sql.to_sql(thedataframe,'tablename', yconnect, schema='databasename', if_exists='append')
import pandas as pd from sqlalchemy import create_engine ##將數據寫入mysql的數據庫,但需要先通過sqlalchemy.create_engine建立連接,且字符編碼設置為utf8,否則有些latin字符不能處理 yconnect = create_engine('mysql+mysqldb://root:password@localhost:3306/databasename?charset=utf8') pd.io.sql.to_sql(thedataframe,'tablename', yconnect, schema='databasename', if_exists='append')
to_sql中,
第一個參數thedataframe是需要導入的pd dataframe,
第二個參數tablename是將導入的數據庫中的表名
第三個參數yconnect是啟動數據庫的接口,pd 1.9以后的版本,除了sqllite,均需要通過sqlalchemy來設置
第四個參數databasename是將導入的數據庫名字
第五個參數if_exists='append'的意思是,如果表tablename存在,則將數據添加到這個表的后面
sqlalchemy.create_engine是數據庫引擎
('mysql+mysqldb://root:password@localhost:3306/databasename?charset=utf8')的解釋
mysql是要用的數據庫
mysqldb是需要用的接口程序
root是數據庫賬戶
password是數據庫密碼
localhost是數據庫所在服務器的地址,這里是本機
3306是mysql占用的端口
elonuse是數據庫的名字
charset=utf8是設置數據庫的編碼方式,這樣可以防止latin字符不識別而報錯
轉自 http://blog.csdn.net/biboshouyu/article/details/54139641