将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy
Posted 一片黑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy相关的知识,希望对你有一定的参考价值。
将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:[email protected]: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:[email protected]: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:[email protected]:3306/databasename?charset=utf8‘)的解释
mysql是要用的数据库
mysqldb是需要用的接口程序
root是数据库账户
password是数据库密码
localhost是数据库所在服务器的地址,这里是本机
3306是mysql占用的端口
elonuse是数据库的名字
charset=utf8是设置数据库的编码方式,这样可以防止latin字符不识别而报错
转自 http://blog.csdn.net/biboshouyu/article/details/54139641
以上是关于将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy的主要内容,如果未能解决你的问题,请参考以下文章
python将pandas dataframe内容写入ElasticSearch实战
将 Pandas DataFrame 写入换行符分隔的 JSON
将pandas DataFrame写入sql时出现无效列名错误
将 Pandas dataframe.groupby 结果写入 S3 存储桶
使用 SqlAlchemy 和 cx_Oracle 将 Pandas DataFrame 写入 Oracle 数据库时加快 to_sql()