2015-03-02 76 views
0

因此,我非常喜歡Python的初學者,但我想要做的是爲紐約證券交易所下載每個CSV文件。在一個excel文件中,我有每個符號。 Yahoo API允許您通過在基本網址中添加符號來下載CSV文件。 我的第一本能是使用熊貓,但熊貓不會存儲字符串。如何將CSV「文字」作爲字符串轉換爲Python

所以我有什麼

import urllib 

strs = ["" for x in range(3297)] 

#strs makes the blank string array for each symbol 

#somehow I need to be able to iterate each symbol into the blank array spots 

while y < 3297: 
    strs[y] = "symbol of each company from csv" 
    y = y+1 

#loop for downloading each file from the link with strs[y]. 

while i < 3297: 
    N = urllib.URLopener() 
    N.retrieve('http://ichart.yahoo.com/table.csv?s='strs[y],'File') 
    i = i+1 

也許解決方案比我在做什麼簡單。

+0

請更改您的問題;目前,「商店字符串」的含義尚不清楚。您真的在問如何通過使用Python讀取excel文件來加載符號嗎? – TkTech 2015-03-02 21:15:11

+1

大熊貓是什麼意思,不存儲字符串? – EdChum 2015-03-02 21:15:28

回答

0

從我在這個問題中可以看到的,你不能看到如何將你的股票符號列表連接到你如何讀取熊貓數據。例如'http://ichart.yahoo.com/table.csv?s='strs[y]是無效的語法。

這有效語法是

pd.read_csv('http://ichart.yahoo.com/table.csv?s={}'.format(strs[y])) 

這將是有益的,如果你可以從你的csv文件的問題添加了一些示例行。在你的結構猜你會做這樣的事情:

import pandas as pd 

symbol_df = pd.read_csv('path_to_csv_file') 

for stock_symbol in symbol_df.symbol_column_name: 
    df = pd.read_csv('http://ichart.yahoo.com/table.csv?s={}'.format(stock_symbol)) 
    # process your dataframe here 
+0

csv文件像這樣開始標誌\t名稱\t LastSale \t MarketCap然後向下列出。從我從代碼中讀取的內容,儘管主要問題是將每個符號循環到基本URL中,以便每次打開雅虎時,都會下載該符號的csv文件。 – TheJonWhoSignsIn 2015-03-03 20:34:42

0

假設你採取的Excel文件瓦特/符號和輸出爲CSV,你可以使用Python內置的CSV讀者解析它:

import csv 
base_url = 'http://ichart.yahoo.com/table.csv?s={}' 
reader = csv.reader(open('symbols.csv')) 
for row in reader: 
    symbol = row[0] 
    data_csv = urllib.urlopen(base_url.format(symbol)).read() 
    # save out to file, or parse with CSV library... 
+0

唯一的問題我在這裏得到的是,每當我使用csv打開它總是給我一個IOError errno 2「文件不存在」我不知道它是否假設是在一個特定的位置文件或?我會研究它。但除此之外,你實現的for循環還可以說列[0],還是必須轉置我的信息? – TheJonWhoSignsIn 2015-03-03 20:44:40