我试图获取所有这些代码的历史股票价格数据可以追溯到2014年。所有这些公司都在2014年上市,所以它会从他们第一次交易的那天起自动获取。
我想要的是stocklist
列表最后包含的是每个公司的数据框/价格历史列表,但是单独列出而不是放在一起。
因此,库存清单将是每个公司的数据框/库存历史,即['LC', 'ZAYO']
等。
tickers = ['LC', 'ZAYO', 'GPRO', 'ANET', 'GRUB', 'CSLT', 'ONDK', 'QUOT', 'NEWR', 'ATEN']
stocklist = []
for i in tickers:
stock = Share(i)
adj = stock.get_historical('2014-1-1', '2016-12-27')
df = pd.DataFrame(adj)
df = df.set_index('Date')
df['Adj_Close'] = df['Adj_Close'].astype(float, errors='coerce')
price = df.sort()
i = price
stocklist.append(i)
答案 0 :(得分:1)
由于缩进不正确,您不会在循环内附加stocklist
。
另外,你正在不必要地搞乱循环变量i
。
虽然由于Share
课程不可用而难以测试,但这可能有用:
tickers = ['LC', 'ZAYO', 'GPRO', 'ANET', 'GRUB',
'CSLT', 'ONDK', 'QUOT', 'NEWR', 'ATEN']
stocklist = []
for ticker in tickers:
stock = Share(ticker)
adj = stock.get_historical('2014-1-1', '2016-12-27')
df = pd.DataFrame(adj)
df.set_index('Date', inplace=True)
df['Adj_Close'] = df['Adj_Close'].astype(float, errors='coerce')
df.sort_index(inplace=True)
stocklist.append(df)
我所做的改变:
tickers
作为变量名称,而不是list
,这是内置类型的名称DataFrame.sort_index()
进行排序,因为DataFrame.sort()
已弃用stocklist
stocklist
追加在由代码键控的字典中收集数据帧可能更有用。因此,您需要初始化stocklist = {}
而不是附加做stocklist[ticker] = df
。