【问题标题】:How to append/concat pandas dataframes of stock prices into one large dataframe如何将股票价格的熊猫数据框附加/连接到一个大数据框中
【发布时间】:2019-03-14 22:09:37
【问题描述】:

我有一个包含 200 个代码的列表,我试图将它们从 csv 导入到一个大数据框中,如下所示:

tickers = ['SPY', 'AAPL',]

for ticker in tickers:
    start = datetime.datetime(2017, 1, 1)
    end = datetime.datetime(2018, 10, 3)
    ticker1 = data.DataReader(ticker,'iex', start, end)
   
    stocks_prices = pd.concat([ticker1],axis=1,keys=tickers)

我的concat 代码不起作用,它只显示“间谍”的价格。有人能告诉我如何为“AAPL”获得它吗?我有一个大约 200 只股票的清单,想把它们合并在一起

【问题讨论】:

  • 您可能想尝试从ticker1(代表“SPY”)和ticker2(代表“AAPL”)创建帧。前任。 frames = [ticker1, ticker2],然后是stock_prices = pd.concat(frames)
  • 是的,但我这里只有 2 只股票,当它有 200 只股票时。我必须手动将ticker1 写入ticker200。对吗?
  • 就像@haxtar 说的
  • 谢谢大家。明白了。会试试看。

标签: python pandas dataframe stock


【解决方案1】:
import datetime
import pandas_datareader.data as web
import pandas as pd
tickers = ['SPY', 'NVTR',]

frames=[]
for ticker in tickers:
    start = datetime.datetime(2018, 10, 1)
    end = datetime.datetime(2018, 10, 3)
    ticker1 = web.DataReader(ticker,'iex', start, end)
    frames.append(ticker1)

stocks_prices = pd.concat(frames,keys=tickers)
print(stocks_prices)

输出

                   open     high     low   close    volume
     date                                                 
SPY  2018-10-01  292.11  292.930  290.98  291.73  62078937
     2018-10-02  291.56  292.355  291.14  291.56  47258227
     2018-10-03  292.74  293.210  291.32  291.72  64694594
NVTR 2018-10-01   22.01   24.890   21.89   24.10    492424
     2018-10-02   24.39   24.790   23.50   23.68    336636
     2018-10-03   23.68   24.280   22.76   23.97    400894

【讨论】:

    猜你喜欢
    • 2017-06-25
    • 2019-01-14
    • 1970-01-01
    • 2019-10-22
    • 2021-12-22
    • 1970-01-01
    • 2018-02-08
    • 2017-06-13
    相关资源
    最近更新 更多