Python 如何获得';美元兑日元';(汇率)与熊猫和雅虎金融?

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'] 错误消息如下所示: --------------------------------------------

我正在学习和使用熊猫和蟒蛇

今天,我想做一张外汇汇率表, 但是我很难得到“USDJPY”的价格

当我得到‘欧元/美元’的价格时,我会这样编码

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)