2015-03-02 69 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