将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

[python] view plain copy
 
print?
  1. import pandas as pd  
  2. from sqlalchemy import create_engine  
  3.   
  4. ##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理  
  5. yconnect = create_engine('mysql+mysqldb://root:password@localhost:3306/databasename?charset=utf8')  
  6. 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