如何使用Pandas Write_Frame将结果导出到cx_Oracle中的Oracle数据库

时间:2014-03-17 16:56:57

标签: python sql oracle pandas cx-oracle

我正在尝试将Pandas DataFrame导出到Oracle数据库。我在Pandas中遇到过Write_Frame函数,听起来就像我需要的那样。

但是,我在网上进行了大量的搜索,但却无法让它发挥作用。我已经导入了cx_Oracle并且可以连接到Oracle数据库以及运行SQL查询而没有任何问题,但是当我运行它时它会给我一个' NotImplementedError ':

import pandas.io.sql as psql

 output = psql.write_frame(MyResults, name = 'MySchema.MyTable', con = MyCon, 
                           flavor = 'oracle', if_exists = 'replace')

到目前为止,我已经在sqlite和mysql上看到了很多关于wrtie_frame的例子,所以这是否意味着如果flavor ='oracle'它将不起作用?我已经尝试将味道更改为mysql,但它给我一个错误,说'无效的SQL语句' ??

任何人都可以帮我解决这个问题,因为我不想将结果写入CSV文件然后导出到数据库表吗?

由于

1 个答案:

答案 0 :(得分:2)

扩展Andy Hayden的评论:oracle确实不支持pandas< = 0.13及更早版本(仅支持sqlite和mysql)。

但是sql模块在0.14(目前在开发中)进行了大修。它现在使用了sqlalchemy,所以通常现在应该通过sqlalchemy支持oracle。有关详细信息,请参阅开发文档:http://pandas-docs.github.io/pandas-docs-travis/io.html#io-sql。事实上,如果你能用oracle进行测试并给出一些反馈,那就太棒了!