2017-04-01 34 views
0
id date  temp  prcp 
1 2015-01-01 -27.18  0 
1 2015-01-02 -25.9  1.03 
1 2015-01-03 -17.89  9.44 
1 2015-01-04 -17.89  9.44 
1 2015-01-05 -17.89  9.44 

import dataset 
import pandas as pd 

db = dataset.connect(path_to_database_on_AWS) 
res = db.query(SELECT * FROM tbl WHERE id=1 and date >= '2015-01-03' and date <= '2015-01-05') 
pd.read_sql(res, con=db) 

在上面的代碼中,我使用從Python數據集庫query方法,從表中讀取,然後希望將結果導出爲大熊貓據幀,但是,我得到這個bug:導出SQL查詢結果以大熊貓數據幀

*** AttributeError: 'Database' object has no attribute 'cursor' 

如何將查詢結果導出到熊貓數據框?

+0

什麼是'db'這裏?你能展示它是如何創建的嗎?通常調用'.execute()'方法,而不是'.query()'。 – bernie

+0

'pandas.read_sql' –

+0

謝謝@bernie,我使用數據集庫中的查詢方法:https://dataset.readthedocs.io/en/latest/api.html#dataset.Database.query。此外,添加了代碼以顯示如何使用python數據庫庫連接到數據庫 – user308827

回答

2

你可以做這樣的事情:

import sqlite3 
    import pandas as pd 
    con = sqlite3.connect('path_to_your_sql') 
    myFrames = pd.read_sql_query('your query', con) 

編輯:非sqlite的數據庫,你可以用這個連​​接:

from sqlalchemy import create_engine 
con = create_engine('dialect+driver://username:[email protected]:port/database') 

docs for create_engine