Заполнение панды Data Frame - PullRequest
1 голос
/ 09 мая 2019

У меня есть список значений тикера

ticker = ["AAPL","MSFT","GOOG"]

, и я хочу создать DF с "высокими" значениями цен для всех акций в списке тикера.

Созданиеempty DF:

high_df = pd.DataFrame(columns = ticker) 

Заполнение DF:

import pandas_datareader as web
import datetime

start = datetime.datetime(2010,1,1)
end = datetime.datetime(2010,2,1)

for each_column in high_df.columns:
   high_df[each_column] = web.DataReader(each_column, "yahoo",start,end)["High"]

Это работает, но занимает много времени, если список тикеров огромен.Любые другие предложения для подходов для ускорения?Ускорьте процесс заполнения DF.

1 Ответ

0 голосов
/ 09 мая 2019

Похоже, просто нужны параллельные вычисления.

from joblib import Parallel, delayed

def yourfunc(tic):
    start = datetime.datetime(2010, 1, 1)
    end = datetime.datetime(2010, 2, 1)
    result=web.DataReader(tic, "yahoo", start, end)["High"]
    return result

results = Parallel(n_jobs=-1, verbose=verbosity_level, backend="threading")(
             map(delayed(yourfunc), ticker ))

О преобразовании вы можете использовать pd.DataFrame(results,columns=ticker)

...