当我们利用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来设置