将股票价格数据框添加到列表中,以便获得股票价格历史列表

时间:2016-12-28 21:33:20

标签: python pandas

我试图获取所有这些代码的历史股票价格数据可以追溯到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)

1 个答案:

答案 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