pandas利用sqlalchemy保存数据到数据库(to_sql)

当我们利用pandas处理完数据后,有时可能需要将处理好的数据保存到数据库中,这时需要利用sqlalchemy。

SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。

利用sqlalchemy,可以讲pandas类型的格式数据保存到数据库中,但是在使用过程中还是有很多坑的,下面简单介绍一下如何使用:

1:

import pandas as pd

from sqlalchemy import create_engine

导入模块中的create_engine,需要利用它来进行连接数据库

2:

conn = create_engine('mysql+mysqldb://root:123456@localhost:3306/w_analysis?charset=utf8')

创建连接,利用create_engine

若出现错误可以尝试,修改mysqldb为pymysql,还有问题的话,文章最后有解决方法。

conn = create_engine('mysql+pymysql://root:123456@localhost:3306/w_analysis?charset=utf8')

3:

pd.io.sql.to_sql(df,table_name,con=conn,schema='w_analysis',if_exists='append')

利用pd的io中的sql的to_sql方法进行导入(记住不是pd的to_sql)

4:

conn.dispose()

关闭连接


create_engine参数说明:

(mysql+mysqldb://用户名:密码@localhost:端口/数据库名?编码)    设置数据库的编码方式,可以防止latin字符不识别而报错

to_sql参数说明:

(数据,表名,con=连接键,schema='数据库名',if_exists='操作方式')    操作方式有append、fail、replace

append:如果表存在,则将数据添加到这个表的后面

fail:如果表存在就不操作

replace:如果存在表,删了,重建

!!!这里提醒一下可能出现的错误:

ModuleNotFoundError: No module named 'MySQLdb'请看这里

注:pd 1.9以后的版本,除了sqllite,均需要通过sqlalchemy来设置


你可能感兴趣的:(python3.6与MySQL)