Fix for Pandas Datareader's get_data_yahoo()
Yahoo! Finance Fix for Pandas Datareader
Yahoo! finance has decommissioned their historical data API, causing many programs that relied on it to stop working.
fix-yahoo-finance offers a temporary fix to the problem by scraping the data from Yahoo! finance using and return a Pandas DataFrame/Panel in the same format as pandas_datareader’s get_data_yahoo().
By basically “hijacking” pandas_datareader.data.get_data_yahoo() method, fix-yahoo-finance’s implantation is easy and only requires to import fix_yahoo_finance into your code.
from pandas_datareader import data as pdr import fix_yahoo_finance as yf yf.pdr_override() # <== that's all it takes :-) # download dataframe data = pdr.get_data_yahoo("SPY", start="2017-01-01", end="2017-04-30") # download Panel data = pdr.get_data_yahoo(["SPY", "IWM"], start="2017-01-01", end="2017-04-30")
I’ve also added some options to make life easier :)
Below is the full list of acceptable parameters:
data = pdr.get_data_yahoo( # tickers list (single tickers accepts a string as well) tickers = ["SPY", "IWM", "..."], # start date (YYYY-MM-DD / datetime.datetime object) # (optional, defaults is 1950-01-01) start = "2017-01-01", # end date (YYYY-MM-DD / datetime.datetime object) # (optional, defaults is Today) end = "2017-04-30", # return a multi-index dataframe # (optional, default is Panel, which is deprecated) as_panel = False, # group by ticker (to access via data['SPY']) # (optional, default is 'column') group_by = 'ticker', # adjust all OHLC automatically # (optional, default is False) auto_adjust = True, # download dividend + stock splits data # (optional, default is None) # options are: # - True (returns history + actions) # - 'only' (actions only) actions = True, # How may threads to use? threads = 10 )
It can also be used as a stand-alone library (without pandas_datareader) if you want:
import fix_yahoo_finance as yf data = yf.download("SPY", start="2017-01-01", end="2017-04-30")
Install fix_yahoo_finance using pip:
$ pip install fix_yahoo_finance --upgrade --no-cache-dir
Optional (if you want to use pandas_datareader)
- pandas_datareader >= 0.4.0
fix-yahoo-finance is distributed under the GNU Lesser General Public License v3.0. See the LICENSE.txt file in the release for details.
Please drop me an note with any feedback you have.