填充熊猫数据框

时间:2019-05-08 22:26:41

标签: pandas pandas-datareader

我有一个股票行情清单

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

我想为报价清单中的所有股票创建一个具有“高”价格值的DF。

创建一个空的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 :(得分:0)

似乎只需要并行计算。

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)