【发布时间】:2015-01-31 09:44:16
【问题描述】:
是否可以通过雅虎财经的 pandas 获取实时股票数据?
对于历史数据,我会执行以下操作:
import pandas.io.data as web
aapl = web.get_data_yahoo('AAPL')
有没有办法获得最新的 aapl 价格?
【问题讨论】:
标签: python pandas yahoo-finance
是否可以通过雅虎财经的 pandas 获取实时股票数据?
对于历史数据,我会执行以下操作:
import pandas.io.data as web
aapl = web.get_data_yahoo('AAPL')
有没有办法获得最新的 aapl 价格?
【问题讨论】:
标签: python pandas yahoo-finance
编辑:
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 库将字符串拆分并从那里将其放入数据框中
【讨论】:
您可以使用以下代码从 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)
【讨论】:
要回答您关于具体使用 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 循环来枚举所述数组以获取数据。
【讨论】: