2016-02-25 50 views

回答

1

不知道这是否正是你想要的,但你可以加载postgres表成熊猫并从那里操纵它们。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.html http://docs.sqlalchemy.org/en/latest/dialects/postgresql.html

从页面无耻被盗上面提到的:

import pandas 
from sqlalchemy import create_engine 

engine = create_engine(
    'postgresql+pg8000://scott:[email protected]/test', 
    isolation_level='READ UNCOMMITTED' 
) 
df = pandas.read_sql('SELECT * FROM <TABLE>;' con=engine) 
+0

谢谢,但表格要大才能加载到内存中(并且将它移动到hd5类型的存储在近期未计划)。我正在寻找的是一个将直接与数据库交互的接口。 – oshi2016

4

更新(2016年3月16日)

这是可能的,但你必须有一个编译器,它会评估您的查询并将其转换为SQL子句。

SQL是一种更高级别的语言,DBMS不仅对查询进行解释,而且还对数据及其分布进行解释,这使得这非常难以执行。

Wes McKinney试图用Ibis project来做到这一点,并且有a nice writeup about some of the challenges


上一篇

不幸的是这是不可能的,因为SQL是高级语言比Python。

随着大熊猫指定你想要做什么以及如何做什么,而使用SQL,你只指定你想要的。然后SQL服务器可以自由决定如何为您的查询提供服务。向表中添加索引时,SQL服务器可以使用该索引更快地为您的查询提供服务,而无需重新编写查询。

如果您指示数据库如何执行查询,那么如果您希望它们使用索引,则还需要重写SQL语句。


话虽这么说,我通常使用在突起的回答进行分析的模式,使用SQL执行初始聚合(并减少数据的大小),然后在大熊猫执行其他操作。

相关问题