2016-02-25 70 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執行初始聚合(並減少數據的大小),然後在大熊貓執行其他操作。

相關問題