所以我是Python的初学者,但我想要做的是下载纽约证券交易所的每个CSV文件。在excel文件中,我有每个符号。 Yahoo API允许您通过将符号添加到基本URL来下载CSV文件。 我的第一直觉是使用熊猫,但是熊猫并没有存储字符串。
所以我有什么
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 :(得分:0)
从我在这个问题中看到的内容,您无法看到如何将您的股票代码列表与您在Pandas中读取数据的方式联系起来。例如'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
答案 1 :(得分: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...