【问题标题】:pandas yahoo finance real time data熊猫雅虎财经实时数据
【发布时间】:2015-01-31 09:44:16
【问题描述】:

是否可以通过雅虎财经的 pandas 获取实时股票数据?

对于历史数据,我会执行以下操作:

import pandas.io.data as web
aapl = web.get_data_yahoo('AAPL')

有没有办法获得最新的 aapl 价格?

【问题讨论】:

    标签: python pandas yahoo-finance


    【解决方案1】:

    编辑:

    Yahoo has ended their free finance API 所以这个答案不再相关。以下是我对 2019 年之前的回答。

    存档:

    有很多可用的库。 Pandas 并没有明确地这样做。

    最简单的,我建议你使用网络库来download yahoo data。我喜欢使用请求,但你也可以使用 urllib。您可以在获取响应后将其强制转换为数据框。

    import requests
    requests.get("http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&e=.csv&f=nsl1op").text
    

    nsl1op 格式变量来自文档:

    I will use here the tags of name(n), symbol(s), the latest value(l1), open(o) and the close value of the last trading day(p)
    

    您的响应数据应该类似于

    u'"Apple Inc.","AAPL",114.63,113.50,115.07\r\n'
    

    您可以使用 csv 库将字符串拆分并从那里将其放入数据框中

    【讨论】:

    • 您好,“下载雅虎数据”下的链接失效了。我认为。
    • 整个答案是存档。在与大型交易所发生法律纠纷后,雅虎最近删除了他们的数据 API。我没有尝试过使用新的 API,也可能不会尝试。也许您可以尝试其他免费服务,例如 AlphaVantage/Quantopian?
    【解决方案2】:

    您可以使用以下代码从 yahoo finace api 获取所有信息:

    import pandas as pd
    from pandas_datareader import data as wb
    
    aapl=wb.DataReader('AAPL',start='2015-1-1',data_source='yahoo')
    print(aapl)
    

    【讨论】:

      【解决方案3】:

      要回答您关于具体使用 Pandas 的问题,您可以使用 pandas 从 yahoo 中提取股票数据,如下所示:

      from pandas.io.data import DataReader
      from datetime import datetime
      
      aapl = DataReader('AAPL',  'yahoo', datetime(2015,7,1), datetime(2015,7,1))
      print(aapl['Adj Close'][0])
      

      这段代码导致:

      126.599998

      您可以使用的其他键是 Open、Close、High、Low 和 Volume。

      请记住,返回的数据集是一个数组。您需要通过指定索引或使用 for 循环来枚举所述数组以获取数据。

      【讨论】:

        猜你喜欢
        • 2014-05-24
        • 1970-01-01
        • 2019-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多