Python 如何获得';美元兑日元';(汇率)与熊猫和雅虎金融?
我正在学习和使用熊猫和蟒蛇 今天,我想做一张外汇汇率表, 但是我很难得到“USDJPY”的价格 当我得到‘欧元/美元’的价格时,我会这样编码Python 如何获得';美元兑日元';(汇率)与熊猫和雅虎金融?,python,ios,pandas,currency,yahoo-finance,Python,Ios,Pandas,Currency,Yahoo Finance,我正在学习和使用熊猫和蟒蛇 今天,我想做一张外汇汇率表, 但是我很难得到“USDJPY”的价格 当我得到‘欧元/美元’的价格时,我会这样编码 eur = web.DataReader('EURUSD=X','yahoo')['Adj Close'] 它起作用了 但是当我写的时候 jpy = web.DataReader('USDJPY=X','yahoo')['Adj Close'] 错误消息如下所示: --------------------------------------------
eur = web.DataReader('EURUSD=X','yahoo')['Adj Close']
它起作用了
但是当我写的时候
jpy = web.DataReader('USDJPY=X','yahoo')['Adj Close']
错误消息如下所示:
---------------------------------------------------------------------------IOError回溯(最近的呼叫
最后)在()
---->1 jpy=web.DataReader('USDJPY=X','yahoo')['Adj Close']
DataReader中的C:\Anaconda\lib\site packages\pandas\io\data.pyc(名称,
数据源、开始、结束、重试(计数、暂停)
70返回get_data_yahoo(符号=名称,开始=开始,结束=结束,
71调整价格=False,chunksize=25,
--->72重试计数=重试计数,暂停=暂停)
73 elif数据来源==“谷歌”:
74返回get_data_google(符号=名称,开始=开始,结束=结束
中的C:\Anaconda\lib\site packages\pandas\io\data.pyc
获取数据(符号、开始、结束、重试计数、暂停、调整价格、,
ret_索引、块大小、名称)
388 """
389返回\u获取\u数据\u来源(符号、开始、结束、重试\u计数、暂停、,
-->390调整价格、调整指数、chunksize、“雅虎”名称)
391
392
中的C:\Anaconda\lib\site packages\pandas\io\data.pyc
_从中获取数据(符号、开始、结束、重试计数、暂停、调整价格、重新索引、块大小、源、名称)
334#如果是单个符号,(例如“GOOG”)
335如果isinstance(符号,(基串,int)):
-->336历史数据=src\u fn(符号、开始、结束、重试计数、暂停)
337#或多个符号(例如,['GOOG'、'AAPL'、'MSFT'])
338 elif isinstance(符号、数据帧):
中的C:\Anaconda\lib\site packages\pandas\io\data.pyc
_获取历史记录(符号、开始、结束、重试计数、暂停)
188'&g=d'+
189'&忽略=.csv')
-->190返回重试读取url(url,重试计数,暂停,'Yahoo!')
191
192
中的C:\Anaconda\lib\site packages\pandas\io\data.pyc
_重试读取url(url、重试计数、暂停、名称)
167
168 raise IOError(“在%d次尝试之后,%s没有”
-->169“为url%r”%返回一个200(重试\u计数、名称、url))
170
171
IOError:尝试3次后,雅虎没有返回200作为url
''
其他货币如“英镑美元”也有同样的问题
你能解决这个问题吗
你有没有想过从雅虎或谷歌获得“USDJPY”?雅虎财经没有提供汇率的历史数据(即页面左上角没有股票、指数等的“历史价格”链接) 你可以使用弗雷德(圣路易斯联邦储备局数据)来获得这些汇率
import pandas.io.data as web
jpy = web.DataReader('DEXJPUS', 'fred')
更新:已移动数据读取器
from pandas_datareader import data
jpy = data.DataReader('DEXJPUS', 'fred')
或者更直接的方式
jpy = web.get_data_fred('DEXJPUS')
FRED每日数据的所有汇率列表可在此处找到:
雅虎财经没有提供汇率的历史数据 是的,但不是交叉汇率。全部对美元
从OANDA获取历史汇率 更新:Oanda最近开始为此收费
免费便捷的方式是雅虎:
# get fx rates
# https://finance.yahoo.com/currencies
# example EUR/USD = EURUSD%3DX?p=EURUSD%3DX
import pandas as pd
import pandas_datareader as dr
# change date range here
start_date = '2021-02-26'
end_date = '2021-03-01'
# retrieve market data of current ticker symbol
print('This is the table with HLOC, Volume, Adj Close prices')
eurusd = dr.data.DataReader('EURUSD%3DX', data_source='yahoo', start=start_date, end=end_date)
print(eurusd)
# just get latest adjusted close for further use
print('This is the Adj Close prices only')
print(eurusd['Adj Close'])
它也适用于其他十字架,与上述声明相反:
# EURCHF%3DX
eurchf = dr.data.DataReader('EURCHF%3DX', data_source='yahoo', start=start_date, end=end_date)
print(eurchf)
有效!非常感谢你的回答。FRED prices中的表格每周更新一次。你有没有快速获取价格的想法?不要等到周末。是的,还有其他来源。Quandl是一个非常有用的资源。Quandl有400多个来源的可用数据,并将其保存在一个易于搜索的位置。Quandl还有一个,和她的e在哪里。quandl数据链接已断开。这是我发现的quandl数据,但是免费数据在6个月前就停止了…所以不是特别有用。最新数据非常昂贵。@AP228您能解释一下如何在R中使用此API吗?IO数据已被删除,不是吗?以及AZN.Currency=[“LSL=X”、“DKK=X”、“MKD=X”、“PGK=X”VEF=X“]OANDA从写这篇文章开始收费。你的文章为我工作,有没有办法获得不同时间段的费率?如果你有一个日期列表,你可以循环查看该列表,依次获得每个日期的费率,或者如果它是一个范围,那么只需更改上面代码中的日期即可。
# get fx rates
# https://finance.yahoo.com/currencies
# example EUR/USD = EURUSD%3DX?p=EURUSD%3DX
import pandas as pd
import pandas_datareader as dr
# change date range here
start_date = '2021-02-26'
end_date = '2021-03-01'
# retrieve market data of current ticker symbol
print('This is the table with HLOC, Volume, Adj Close prices')
eurusd = dr.data.DataReader('EURUSD%3DX', data_source='yahoo', start=start_date, end=end_date)
print(eurusd)
# just get latest adjusted close for further use
print('This is the Adj Close prices only')
print(eurusd['Adj Close'])
# EURCHF%3DX
eurchf = dr.data.DataReader('EURCHF%3DX', data_source='yahoo', start=start_date, end=end_date)
print(eurchf)