使用 pandas 数据阅读器提取股票信息

Posted

技术标签:

【中文标题】使用 pandas 数据阅读器提取股票信息【英文标题】:Pulling stock information using pandas datareader 【发布时间】:2018-04-02 01:23:24 【问题描述】:

我正在使用 pandas 数据阅读器来提取给定日期范围内的股票信息。例如:

import pandas_datareader.data as web
import datetime as dt

start = dt.datetime(2018,3,26)
end = dt.datetime(2018,3,29)

web.DataReader('IBM','yahoo', start, end).reset_index()

这将为 IBM 返回以下数据框:

这包含我正在寻找的信息,但我想自动迭代多个股票代码(而不是手动更改股票代码)。理想情况下,我可以通过所需股票代码列表循环此代码。

【问题讨论】:

【参考方案1】:

这是另一种方式,直接创建数据框:

tickers = ['IBM','AAPL']

df = pd.concat([web.DataReader(ticker,'morningstar', start, end) for ticker in tickers]).reset_index()

返回:

  Symbol       Date   Close      High     Low     Open    Volume
0    IBM 2018-03-26  153.37  153.6570  150.28  151.210   4103904
1    IBM 2018-03-27  151.91  154.8697  151.16  153.950   3883745
2    IBM 2018-03-28  152.52  153.8600  151.89  152.070   3664826
3    IBM 2018-03-29  153.43  153.8900  151.08  153.070   3419959
4   AAPL 2018-03-26  172.77  173.1000  166.44  168.070  37541236
5   AAPL 2018-03-27  168.34  175.1500  166.92  173.680  40922579
6   AAPL 2018-03-28  166.48  170.0200  165.19  167.250  41668545
7   AAPL 2018-03-29  167.78  171.7500  166.90  167.805  38398505

【讨论】:

【参考方案2】:

我认为这可能是您正在寻找的。​​p>

import pandas_datareader.data as web
import datetime as dt

start = dt.datetime(2018,3,26)
end = dt.datetime(2018,3,29)
tickers = ['IBM', 'FB']
data = 
for t in tickers:
   data[t] = web.DataReader(t,'morningstar', start, end).reset_index()

【讨论】:

以上是关于使用 pandas 数据阅读器提取股票信息的主要内容,如果未能解决你的问题,请参考以下文章

用Pandas Dataframe支撑起多只金融产品股票的数据内部形态

text [股票数据提取]考虑到Pandas_Datareader不再适用于雅虎数据,获取股票数据。 #pandas #e

创建 DataFrame 后设置 pandas DatetimeIndex 的频率

使用 JSP 提取实时股票价格

使用 Java 从 Web 中提取数据 [关闭]

Pandas数据阅读器更新,获取FRED货币汇率