猿问

数据框和循环

我有一个股票代码列表(186),对于每个股票代码,我需要获取价格...我正在使用循环进行此操作,对于每个股票代码,我想要一个编号从 0 到 186 的新 df 。


信息:len(tickers_list)=186


for i in range(len(tickers_list)-180):

    try:

        data = pdr.get_data_yahoo(tickers_list[i], start=df['Date'][i], end="2020-08-30")['Adj Close']

        df_new[i]=pd.DataFrame(data)

    except:

        print('Fail')

        continue

我只是失败了。如果我删除,但错误消息是“df_new”未定义


慕尼黑的夜晚无繁华
浏览 92回答 1
1回答

慕桂英3389331

假设get_data_yahoo返回 aDataFrame并且您仅选择'Adj Close'列,您可以收集字典中的所有系列,然后将它们连接到数据框中。data = dict()for i, (ticker, start_date) in enumerate(zip(tickers_list[:6], df.Date)): # a simpler way to iterate    data[ticker] = pdr.get_data_yahoo(ticker, start=start_date,        end='2020-08-30')['Adj Close']data = pd.concat(data.values(), keys=data.keys(), axis=1)
随时随地看视频慕课网APP

相关分类

Python
我要回答