2017-08-15 24 views
0

我一直在玩Quandl數據庫,我想寫一段代碼,通過他們所有的免費股票價格圖表並將其放入熊貓數據庫中。我創建了一個有紐約證券交易所股票的股票代碼,但Quandl只允許免費訪問一些股票,所以我的查詢涉及很多無效數據,這會導致異常。我想要做的就是處理異常,如果在Quandl上有一個股票可以在數據庫中使用,並且如果沒有,代碼只是簡單地通過它而不做任何事情。這是我的代碼到目前爲止:當只有一些有效時查詢數據

countries = pd.read_html('http://www.nationsonline.org/oneworld/country_code_list.htm') 
real_countries = countries[2] 
for abbv in real_countries[3]: 
    query = 'UNAE/GVAKD_'+str(abbv) 

什麼應該嘗試和except語句看起來像?

回答

0

我認爲這裏有一些直接的問題。

real_countries = countries[2] 

從列表中返回單個值。例如,

countries = ['spain', 'france', 'uk'] 
real_countries = countries[2] 
real_countries 

返回

'uk' 

,因爲它是在列表中的0 1 2位置。因此,然後調用

real_countries[3] 

回報

--------------------------------------------------------------------------- 
IndexError        Traceback (most recent call last) 
<ipython-input-12-32ebd2273102> in <module>() 
----> 1 real_countries[3] 

IndexError: string index out of range 

所以這是很難理解你要什麼在這裏。

我想你想的是:那麼現在至少你有你的查詢列表

string_to_add = 'UNAE/GVAKD_' 
query_list = [value+string_to_add if value in real_countries else None for value in countries] 

:如果在列表值,那麼字符串+價值new_list

,所以我們可以仿效這種像,然後你可以再次循環來實際執行你的查詢。但是,你仍然需要通過不切出一個單一的價值來確定你的「真實國家」,這是你通過國家做的[2]。

+0

對不起,我不清楚,國家是一個數據框的列表,因爲這是read_html返回的內容。 real_countries然後從該列表中選出我想要的數據框。 –

+0

我不明白。你只是試圖在你的「real_countries」dataFrame中向每個國家添加'UNAE/GVAKD_'字符串? – Dylan

+0

是的,然後通過quandl的數據庫將該列表用作查詢。順便說一句,我剛剛意識到這些不是國家,這個名字是從一個不同的代碼遺留下來的。這些是股票。我所做的是創建紐約證券交易所所有股票的清單,我想用它來查詢股票價格數據庫。問題是,他們沒有每個股票的數據庫,只有少數幾個,所以我的一些查詢符號顯示爲錯誤。 –