正在填充 pandas 数据框
Filling pandas Data Frame
我有一个代码值列表
ticker = ["AAPL","MSFT","GOOG"]
并且我想为代码列表中的所有股票创建一个具有 "high" 个价格值的 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填充的方式。
好像只需要并行计算。
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)
我有一个代码值列表
ticker = ["AAPL","MSFT","GOOG"]
并且我想为代码列表中的所有股票创建一个具有 "high" 个价格值的 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填充的方式。
好像只需要并行计算。
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)