我有一个csv文件,其中包含我希望从雅虎财经中提取的符号列表。 (约3000人)
df = pandas.read_csv('ticker_file.csv')
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime.today()
for each_code in df['Symbol']: # got it from pandas website "Remote Data Access"
get_prices = web.DataReader(each_code, 'yahoo', start, end)
get_prices.to_csv(each_code + '.csv')
拉一个symbol
并将其保存到csv
大约需要2.5到3秒。
我想知道,使用多处理/超线程来加快这个过程是否可能/更快?
答案 0 :(得分:1)
您可以非常轻松地使用多处理工作池。看一下https://docs.python.org/2/library/multiprocessing.html和给出的第一个例子(使用5个工作池)。它看起来像这样:
def f(each_code):
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime.today()
get_prices = web.DataReader(each_code, 'yahoo', start, end)
get_prices.to_csv(each_code + '.csv')
p = Pool(20)
p.map(f, df['Symbol'])
不能说是否会加快速度。只要网站没有抱怨,它很可能会发生。