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
By basically "hijacking"
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")
$ pip install fix_yahoo_finance --upgrade --no-cache-dir
- Python >=3.4
- Pandas (tested to work with >=0.18.1)
- Numpy >= 1.11.1
- requests >= 2.14.2
- multitasking >= 0.0.3
Optional (if you want to use
- 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.