用sqlalchemy,mysql和pandas读取框架

时间:2013-12-05 13:33:08

标签: mysql sqlalchemy pandas

我正在尝试连接到mysql数据库, 适用于选项1:

from sqlalchemy import create_engine
engine = create_engine('mysql://root:root@localhost/lend', echo=True)
cnx = engine.connect()
x = cnx.execute("SELECT * FROM user")

但在这里分解:

from pandas.io import sql
xx = sql.read_frame("SELECT * FROM user", cnx)
cnx.close()

AttributeError:'Connection'对象没有属性'rollback'

2 个答案:

答案 0 :(得分:19)

您需要具有原始数据库连接,而不是Connection的实例。要拨打engine.raw_connection()engine.connect().connection,请致电

from pandas.io import sql
#cnx = engine.connect().connection # option-1
cnx = engine.raw_connection() # option-2
xx = sql.read_frame("SELECT * FROM user", cnx)
cnx.close()

答案 1 :(得分:1)

使用MySQLdb模块创建连接。 ongoing progress有更好的SQL支持,包括sqlalchemy,但还没有准备好。

如果您习惯安装pandas的开发版本,您可能需要密切关注该链接问题,并在合并后立即切换到使用开发版本的pandas。虽然pandas的SQL支持是可用的,但是如果你广泛使用Pandas + SQL,可能会出现一些数据类型,缺失值等的错误。