Pandas Datareader Latest
Pandas Datareader Latest
Release 0.8.0+4.gec799a0
pydata
1 Usage 3
2 Documentation 5
3 Installation 7
3.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Install latest release version via pip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3 Install latest development version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Documentation 9
4.1 What’s New . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Remote Data Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3 Caching queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.4 Other Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5 Data Readers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Index 57
i
ii
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
Up to date remote data access for pandas, works for multiple versions of pandas.
Warning: v0.8.0 is the last version which officially supports Python 2.7. Future versions of
pandas_datareader will end support for Python 2.x.
Warning: As of v0.8.0 Robinhood has been immediately deprecated due to large changes in their API and no
stable replacement.
Contents 1
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
2 Contents
CHAPTER 1
Usage
Starting in 0.19.0, pandas no longer supports pandas.io.data or pandas.io.wb, so you must replace your
imports from pandas.io with those from pandas_datareader:
Many functions from the data module have been included in the top level API.
3
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
4 Chapter 1. Usage
CHAPTER 2
Documentation
Stable documentation is available on github.io. A second copy of the stable documentation is hosted on read the docs
for more details.
Development documentation is available for the latest changes in master.
5
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
6 Chapter 2. Documentation
CHAPTER 3
Installation
3.1 Requirements
7
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
or
8 Chapter 3. Installation
CHAPTER 4
Documentation
Contents:
Highlights include:
• A new connector for Econdb was introduced. Econdb provides aggregated economic data from 90+ official
statistical agencies (GH615)
• Migrated IEX readers to IEX Cloud. All readers now require an API token (IEX_API_KEY) (GH638)
• Removal of Google Finance and Morningstar, which were deprecated in 0.7.0
• Immediate deprecation of Robinhood for quotes and historical data. Robinhood ended support for these end-
points in 1/2019
• Enhancements
• Backwards incompatible API changes
• Bug Fixes
• Contributors
9
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
Enhancements
• Immediate deprecation of Robinhood for quotes and historical data. Robinhood ended support for these end-
points in 1/2019. The Robinhood quotes and daily readers will raise an ImmediateDeprecationError
when called.
• Usage of all IEX readers requires an IEX Cloud API token, which can be passed as a parameter or stored in the
environment variable IEX_API_TOKEN
• Deprecated access_key in favor of api_key in DataReader. (GH693)
Bug Fixes
• Fix Yahoo! actions issue where dividends are adjusted twice as a result of a change to the Yahoo! API. (:issue:
583)
• Fix AlphaVantage time series data ordering after provider switch to descending order (maintains ascending order
for consistency). (:issue: 662)
• Refactored compatibility library to be independent of pandas version.
• Fixed quarter value handling in JSDMX and OECD. (GH685)
• Fixed a bug in base so that the reader does not error when response.encoding is None. (GH674)
• Correct EcondbReader’s API URL format. (GH670)
• Fix eurostat URL. (GH669)
• Adjust Alphavantage time series reader to account for descending ordering. (GH666)
• Fix bug in downloading index historical constituents. (GH591)
• Fix a bug that occurs when an endpoint returns has no data for a date range. (GH640)
Contributors
• Peiji Chen
• EconDB
• Roger Erens
• Nikhilesh Koshti
10 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
• Gábor Lipták
• Addison Lynch
• Rahim Nathwani
• Chuk Orakwue
• Raffaele Sandrini
• Felipe S. S. Schneider
• Kevin Sheppard
• Tony Shouse
• David Stephens
Warning: Google finance and Morningstar for historical price data have been immediately deprecated.
Highlights include:
• Immediate deprecation of Google finance and Morningstar for historical price data, as these API endpoints are
no longer supported by their respective providers. Alternate methods are welcome via pull requests, as PDR
would like to restore these features.
• Removal of EDGAR, which was deprecated in v0.6.0.
• Enhancements
• Backwards incompatible API changes
• Bug Fixes
Enhancements
• A new data connector for data provided by Alpha Vantage was introduced to obtain Foreign Exchange (FX)
data. (GH389)
• A new data connector for data provided by Alpha Vantage was introduced to obtain historical time series data.
(GH389)
• A new data connector for data provided by Alpha Vantage was introduced to obtain sector performance data,
accessed through the top-level function get_sector_performance_av. (GH389)
• A new data connector for data provided by Alpha Vantage was introduced to obtain real-time Batch Stock
Quotes through the top-level function get_quote_av. (GH389)
• MOEX data connector now supports multiple symbols in constructor. (GH562)
• Deprecation of Google finance daily reader. Google retired the remaining financial data end point in June 2018.
It is not possible to reliably retrieve historical price data without this endpoint. The Google daily reader will
raise an ImmediateDeprecationError when called.
• Deprecation of Morningstar daily reader. Morningstar ended support for the historical price data endpoint in
July 2018. It is not possible to retrieve historical price data without this endpoint. The Morningstar daily reader
will raise an ImmediateDeprecationError when called.
• When requesting multiple symbols from a DailyReader (ex: google, yahoo, IEX) a MultiIndex DataFrame is
now returned. Previously Panel or dict of DataFrames were returned. (GH297).
Bug Fixes
This is a major release from 0.5.0. We recommend that all users upgrade.
Warning: Yahoo!, Google Options, Google Quotes and EDGAR have been immediately deprecated.
Note: Google finance is still functioning for historical price data, although there are frequent reports of failures.
Failure is frequently encountered when bulk downloading historical price data.
Highlights include:
• Immediate deprecation of Yahoo!, Google Options and Quotes and EDGAR. The end points behind these APIs
have radically changed and the existing readers require complete rewrites. In the case of most Yahoo! data the
endpoints have been removed. PDR would like to restore these features, and pull requests are welcome.
12 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
• A new connector for Tiingo was introduced. Tiingo provides historical end-of-day data for a large set of equities,
ETFs and mutual funds. Free registration is required to get an API key (GH478).
• A new connector for Robinhood was introduced. This provides up to 1 year of historical end-of-day data. It also
provides near real-time quotes. (GH477).
• A new connector for Morningstar Open, High, Low, Close and Volume was introduced (GH467)
• A new connector for IEX daily price data was introduced (GH465).
• A new connector for IEX the majority of the IEX API was introduced (GH446).
• A new data connector for stock index data provided by Stooq was introduced (GH447).
• A new data connector for data provided by the Bank of Canada was introduced (GH440).
• A new data connector for data provided by Moscow Exchange (MOEX) introduced (GH381).
• Enhancements
• Backwards incompatible API changes
• Bug Fixes
• Other Changes
Enhancements
• A new data connector for data provided by the Bank of Canada was introduced. (GH440)
• A new data connector for stock index data provided by Stooq was introduced. (GH447)
• A new connector for IEX the majority of the IEX API was introduced (GH446).
• A new connector for IEX daily price data was introduced (GH465).
• A new data connector for stock pricing data provided by Morningstar was introduced. (GH467)
• A new data connector for stock pricing data provided by Robinhood was introduced. (GH477)
• A new data connector for stock pricing data provided by Tiingo was introduced. (GH478)
• A new data connector for data provided by Moscow Exchange was introduced. (GH381).
• Deprecation of Yahoo readers. Yahoo! retired the financial data end points in late 2017. It is not possible
to reliably retrieve data from Yahoo! without these endpoints. The Yahoo! readers have been immediately
deprecated and will raise an ImmediateDeprecationError when called.
• Deprecation of EDGAR readers. EDGAR substantially altered their API. The EDGAR readers have been im-
mediately deprecated and will raise an ImmediateDeprecationError when called.
• Google finance data will raise an UnstableAPIWarning when first called. Google has also altered their API in a
way that makes reading data unreliable. It many call it works. However it also regularly fails, especially when
used for bulk downloading. Google may be removed in the future.
Bug Fixes
• freq parameter was added to the WorldBank connector to address a limitation (GH198, GH449).
• The Enigma data connector was updated to the latest API (GH380).
• The Google finance endpoint was updated to the latest value (GH404).
• Tne end point for FRED was updated to the latest values (GH436).
• Tne end point for WorldBank was updated to the latest values (GH456).
Other Changes
This is a major release from 0.4.0. We recommend that all users upgrade.
Highlights include:
• Compat with the new Yahoo iCharts API. Yahoo removed the older API, this release restores ability to download
from Yahoo. (GH315)
• Enhancements
• Backwards incompatible API changes
• Bug Fixes
Enhancements
Bug Fixes
14 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
This is a major release from 0.3.0 and includes compat with pandas 0.20.1, and some backwards incompatible API
changes.
Highlights include:
• Enhancements
• Backwards incompatible API changes
Enhancements
• Support has been dropped for Python 2.6 and 3.4 (GH313)
• Support has been dropped for pandas versions before 0.17.0 (GH313)
This is a major release from 0.2.1 and includes new features and a number of bug fixes.
Highlights include:
• New features
– Other enhancements
• Bug Fixes
New features
• DataReader now supports dividend only pulls from Yahoo! Finance (GH138).
• DataReader now supports downloading mutual fund prices from the Thrift Savings Plan, see here (GH157).
• DataReader now supports Google options data source (GH148).
• DataReader now supports Google quotes (GH188).
• DataReader now supports Enigma dataset. see here (GH245).
• DataReader now supports downloading a full list of NASDAQ listed symbols. see here (GH254).
Other enhancements
• Eurostat reader now supports larger data returned from API via zip format. (GH205)
• Added support for Python 3.6.
• Added support for pandas 19.2
Bug Fixes
• Fixed bug that caused DataReader to fail if company name has a comma. (GH85).
• Fixed bug in YahooOptions caused as a result of change in yahoo website format. (GH244).
This is a minor release from 0.2.0 and includes new features and bug fixes.
Highlights include:
• New features
• Backwards incompatible API changes
New features
• Options columns PctChg and IV (Implied Volatility) are now type float rather than string. (GH122)
This is a major release from 0.1.1 and includes new features and a number of bug fixes.
Highlights include:
• New features
• Backwards incompatible API changes
16 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
• Bug Fixes
New features
• Fama French indexes are not Pandas.PeriodIndex for annual and monthly data, and pandas.DatetimeIndex oth-
erwise (GH56).
Bug Fixes
Warning: The access_key keyword argument of DataReader has been deprecated in favor of api_key.
Warning: Robinhood has been immediately deprecated. Endpoints from this provider have been retired.
Functions from pandas_datareader.data and pandas_datareader.wb extract data from various Internet
sources into a pandas DataFrame. Currently the following sources are supported:
• Tiingo
• IEX
• Alpha Vantage
• Enigma
• Quandl
• St.Louis FED (FRED)
• Kenneth French’s data library
• World Bank
• OECD
• Eurostat
• Thrift Savings Plan
4.2.1 Tiingo
Tiingo is a tracing platform that provides a data api with historical end-of-day prices on equities, mutual funds and
ETFs. Free registration is required to get an API key. Free accounts are rate limited and can access a limited number
of symbols (500 at the time of writing).
In [1]: import os
In [2]: import pandas_datareader as pdr
4.2.2 IEX
Warning: Usage of all IEX readers now requires an API key. See below for additional information.
The Investors Exchange (IEX) provides a wide range of data through an API. Historical stock prices are available for
up to 15 years. The usage of these readers requires the publishable API key from IEX Cloud Console, which can be
stored in the IEX_API_KEY environment variable.
In [6]: f.loc['2018-08-31']
(continues on next page)
18 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
Note: You must provide an API Key when using IEX. You can do this using os.environ["IEX_API_KEY"] =
"pk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" or by exporting the key before starting the IPython session.
There are additional interfaces to this API that are directly exposed: tops (‘iex-tops’) and last (‘iex-lasts’). A third
interface to the deep API is exposed through Deep class or the get_iex_book function.
Alpha Vantage provides realtime equities and forex data. Free registration is required to get an API key.
Through the Alpha Vantage Time Series endpoints, it is possible to obtain historical equities data for individual sym-
bols. For daily, weekly, and monthly frequencies, 20+ years of historical data is available. The past 3-5 days of
intraday data is also available.
The following endpoints are available:
• av-intraday - Intraday Time Series
• av-daily - Daily Time Series
• av-daily-adjusted - Daily Time Series (Adjusted)
• av-weekly - Weekly Time Series
• av-weekly-adjusted - Weekly Time Series (Adjusted)
• av-monthly - Monthly Time Series
• av-monthly-adjusted - Monthly Time Series (Adjusted)
In [1]: import os
In [5]: f.loc["2017-02-09"]
Out[5]:
open 1.316500e+02
high 1.324450e+02
low 1.311200e+02
close 1.324200e+02
volume 2.834990e+07
Name: 2017-02-09, dtype: float64
The top-level function get_data_alphavantage is also provided. This function will return the
TIME_SERIES_DAILY endpoint for the symbol and date range provided.
Quotes
Alpha Vantage Batch Stock Quotes endpoint allows the retrieval of realtime stock quotes for up to 100 symbols at
once. These quotes are accessible through the top-level function get_quote_av.
In [1]: import os
Forex
Alpha Vantage provides realtime currency exchange rates (for physical and digital currencies).
To request the exchange rate of physical or digital currencies, simply format as “FROM/TO” as in “USD/JPY”.
In [1]: import os
In [4]: f
Out[4]:
USD/JPY
From_Currency Code USD
(continues on next page)
20 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
In [1]: import os
In [4]: f
Out[4]:
USD/JPY BTC/CNY
From_Currency Code USD BTC
From_Currency Name United States Dollar Bitcoin
To_Currency Code JPY CNY
To_Currency Name Japanese Yen Chinese Yuan
Exchange Rate 108.17000000 72230.38039500
Last Refreshed 2019-09-17 10:44:35 2019-09-17 10:44:01
Time Zone UTC UTC
Bid Price 108.17000000 72226.26407700
Ask Price 108.17000000 72230.02554000
Sector Performance
Alpha Vantage provides sector performances through the top-level function get_sector_performance_av.
In [1]: import os
In [3]: web.get_sector_performance_av().head()
Out[4]:
RT 1D 5D 1M 3M YTD 1Y 3Y 5Y
˓→ 10Y
Energy 3.29% 3.29% 4.82% 11.69% 3.37% 9.07% -15.26% -7.69% -32.31%
˓→ 12.15%
Real Estate 1.02% 1.02% -1.39% 1.26% 3.49% 24.95% 16.55% NaN NaN
˓→ NaN
Utilities 0.08% 0.08% 0.72% 2.77% 3.72% 18.16% 16.09% 27.95% 48.41%
˓→113.09%
Industrials -0.15% -0.15% 2.42% 8.59% 5.10% 22.70% 0.50% 34.50% 43.53%
˓→183.47%
Health Care -0.23% -0.23% 0.88% 1.91% 0.09% 5.20% -2.38% 26.37% 43.43%
˓→216.01%
4.2.4 Econdb
Econdb provides economic data from 90+ official statistical agencies. Free API allows access to the complete Econdb
database of time series aggregated into datasets.
In [1]: import os
In [4]: f.head()
Out[4]:
values
TIME_PERIOD
2014-10-01 17143038
2015-01-01 17277580
2015-04-01 17405668
2015-07-01 17463222
2015-10-01 17468902
4.2.5 Enigma
Access datasets from Enigma, the world’s largest repository of structured public data. Note that the Enigma URL has
changed from app.enigma.io as of release 0.6.0, as the old API deprecated.
Datasets are unique identified by the uuid4 at the end of a dataset’s web address. For example, the following code
downloads from USDA Food Recalls 1996 Data.
In [1]: import os
In [4]: df.columns
Out[4]:
Index(['case_number', 'recall_notification_report_number',
'recall_notification_report_url', 'date_opened', 'date_closed',
'recall_class', 'press_release', 'domestic_est_number', 'company_name',
'imported_product', 'foreign_estab_number', 'city', 'state', 'country',
'product', 'problem', 'description', 'total_pounds_recalled',
'pounds_recovered'],
dtype='object')
4.2.6 Quandl
Daily financial data (prices of stocks, ETFs etc.) from Quandl. The symbol names consist of two parts: DB name and
symbol name. DB names can be all the free ones listed on the Quandl website. Symbol names vary with DB name; for
WIKI (US stocks), they are the common ticker symbols, in some other cases (such as FSE) they can be a bit strange.
Some sources are also mapped to suitable ISO country codes in the dot suffix style shown above, currently available
for BE, CN, DE, FR, IN, JP, NL, PT, UK, US.
22 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
As of June 2017, each DB has a different data schema, the coverage in terms of time range is sometimes surprisingly
small, and the data quality is not always good.
In [4]: df.loc['2015-01-02']
Out[4]:
Open High Low Close Volume ... AdjOpen AdjHigh
˓→ AdjLow AdjClose AdjVolume
Date ...
2015-01-02 111.39 111.44 107.35 109.33 53204626.0 ... 105.820966 105.868466
˓→101.982949 103.863957 53204626.0
4.2.7 FRED
In [10]: gdp.loc['2013-01-01']
Out[10]:
GDP 16569.591
Name: 2013-01-01 00:00:00, dtype: float64
# Multiple series:
In [11]: inflation = web.DataReader(['CPIAUCSL', 'CPILFESL'], 'fred', start, end)
In [12]: inflation.head()
Out[12]:
CPIAUCSL CPILFESL
DATE
2010-01-01 217.488 220.633
2010-02-01 217.281 220.731
2010-03-01 217.353 220.783
2010-04-01 217.403 220.822
2010-05-01 217.290 220.962
4.2.8 Fama/French
Access datasets from the Fama/French Data Library. The get_available_datasets function returns a list of
all available datasets.
In [15]: len(get_available_datasets())
Out[15]: 295
In [17]: print(ds['DESCR'])
5 Industry Portfolios
---------------------
This file was created by CMPT_IND_RETS using the 201907 CRSP database. It contains
˓→value- and equal-weighted returns for 5 industry portfolios. The portfolios are
˓→constructed at the end of June. The annual returns are from January to December.
˓→Missing data are indicated by -99.99 or -999. Copyright 2019 Kenneth R. French
In [18]: ds[4].head()
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
˓→
pandas users can easily access thousands of panel data series from the World Bank’s World Development Indicators
by using the wb I/O functions.
Indicators
Either from exploring the World Bank site, or using the search function included, every world bank indicator is
accessible.
For example, if you wanted to compare the Gross Domestic Products per capita in constant dollars in North America,
you would use the search function:
Then you would use the download function to acquire the data from the World Bank’s servers:
24 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
In [4]: print(dat)
NY.GDP.PCAP.KD
country year
Canada 2008 36005.5004978584
2007 36182.9138439757
2006 35785.9698172849
2005 35087.8925933298
Mexico 2008 8113.10219480083
2007 8119.21298908649
2006 7961.96818458178
2005 7666.69796097264
United States 2008 43069.5819857208
2007 43635.5852068142
2006 43228.111147107
2005 42516.3934699993
The resulting dataset is a properly formatted DataFrame with a hierarchical index, so it is easy to apply .groupby
transformations to it:
In [6]: dat['NY.GDP.PCAP.KD'].groupby(level=0).mean()
Out[6]:
country
Canada 35765.569188
Mexico 7965.245332
United States 43112.417952
dtype: float64
Now imagine you want to compare GDP to the share of people with cellphone contracts around the world.
In [7]: wb.search('cell.*%').iloc[:,:2]
Out[7]:
id name
3990 IT.CEL.SETS.FE.ZS Mobile cellular telephone users, female (% of ...
3991 IT.CEL.SETS.MA.ZS Mobile cellular telephone users, male (% of po...
4027 IT.MOB.COV.ZS Population coverage of mobile cellular telepho...
Notice that this second search was much faster than the first one because pandas now has a cached list of available
data series.
Finally, we use the statsmodels package to assess the relationship between our two variables using ordinary least
squares regression. Unsurprisingly, populations in rich countries tend to use cellphones at a higher rate:
In [17]:
import numpy as np
In [18]:
import statsmodels.formula.api as smf
In [19]:mod = smf.ols('cellphone ~ np.log(gdp)', dat).fit()
In [20]:
print(mod.summary())
OLS Regression Results
==============================================================================
Dep. Variable: cellphone R-squared: 0.297
Model: OLS Adj. R-squared: 0.274
Method: Least Squares F-statistic: 13.08
Date: Thu, 25 Jul 2013 Prob (F-statistic): 0.00105
Time: 15:24:42 Log-Likelihood: -139.16
No. Observations: 33 AIC: 282.3
Df Residuals: 31 BIC: 285.3
Df Model: 1
===============================================================================
coef std err t P>|t| [95.0% Conf. Int.]
-------------------------------------------------------------------------------
Intercept 16.5110 19.071 0.866 0.393 -22.384 55.406
np.log(gdp) 9.9333 2.747 3.616 0.001 4.331 15.535
==============================================================================
Omnibus: 36.054 Durbin-Watson: 2.071
Prob(Omnibus): 0.000 Jarque-Bera (JB): 119.133
Skew: -2.314 Prob(JB): 1.35e-26
Kurtosis: 11.077 Cond. No. 45.8
==============================================================================
Country Codes
The country argument accepts a string or list of mixed two or three character ISO country codes, as well as dynamic
World Bank exceptions to the ISO standards.
For a list of the the hard-coded country codes (used solely for error handling logic) see pandas_datareader.
wb.country_codes.
Note: The World Bank’s country list and indicators are dynamic. As of 0.15.1, wb.download() is more flexible.
To achieve this, the warning and exception logic changed.
The world bank converts some country codes, in their response, which makes error checking by pandas difficult.
Retired indicators still persist in the search.
Given the new flexibility of 0.15.1, improved error handling by the user may be necessary for fringe cases.
To help identify issues:
There are at least 4 kinds of country codes:
1. Standard (2/3 digit ISO) - returns data, will warn and error properly.
2. Non-standard (WB Exceptions) - returns data, but will falsely warn.
3. Blank - silently missing from the response.
4. Bad - causes the entire response from WB to fail, always exception inducing.
There are at least 3 kinds of indicators:
26 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
4.2.10 OECD
OECD Statistics are available via DataReader. You have to specify OECD’s data set code.
To confirm data set code, access to each data -> Export -> SDMX Query. Following example is to down-
load ‘Trade Union Density’ data which set code is ‘TUD’.
In [19]: import pandas_datareader.data as web
In [22]: df.columns
Out[22]:
MultiIndex(levels=[['Australia', 'Austria', 'Belgium', 'Canada', 'Chile', 'Czech
˓→Republic', 'Denmark', 'Estonia', 'Finland', 'France', 'Germany', 'Greece', 'Hungary
˓→13, 13, 13, 9, 9, 9, 9, 9, 9, 17, 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 23, 23, 23,
˓→23, 23, 23, 5, 5, 5, 5, 5, 5, 35, 35, 35, 35, 35, 35, 18, 18, 18, 18, 18, 18, 32,
˓→32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 25, 25, 25, 25, 25, 25, 11, 11, 11, 11,
˓→11, 11, 19, 19, 19, 19, 19, 19, 7, 7, 7, 7, 7, 7, 24, 24, 24, 24, 24, 24, 15, 15,
˓→15, 15, 15, 15, 6, 6, 6, 6, 6, 6, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28,
˓→21, 21, 21, 21, 21, 21, 2, 2, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 4, 4, 4, 4, 4, 4,
˓→16, 16, 16, 16, 16, 16, 27, 27, 27, 27, 27, 27, 10, 10, 10, 10, 10, 10], [0, 0, 0,
˓→1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
˓→0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1,
˓→1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0,
˓→1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
˓→0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1,
˓→1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0,
˓→1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0,
˓→2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2,
˓→1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
˓→0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0,
˓→2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2,
˓→1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1,
˓→0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0,
˓→2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2,
˓→1, 0, 2, 1, 0, 2, 1, 0, 2, 1]],
(continues on next page)
[2 rows x 12 columns]
4.2.11 Eurostat
In [26]: df
Out[26]:
ACCIDENT Collisions of trains, including collisions with obstacles within the
˓→clearance gauge ... Unknown
UNIT
˓→ Number ... Number
GEO
˓→ Austria ... United Kingdom
FREQ
˓→ Annual ... Annual
TIME_PERIOD
˓→ ...
2015-01-01 7.0
˓→ ... NaN
2016-01-01 7.0
˓→ ... NaN
2017-01-01 7.0
˓→ ... NaN
28 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
In [29]: tspreader.read()
Out[29]:
L Income L 2020 L 2030 L 2040 ... C Fund S Fund I Fund
date ...
2015-10-01 17.5164 22.5789 24.2159 25.5690 ... 25.7953 34.0993 23.3202 NaN
2015-10-02 17.5707 22.7413 24.4472 25.8518 ... 26.1669 34.6504 23.6367
2015-10-05 17.6395 22.9582 24.7571 26.2306 ... 26.6467 35.3565 24.1475
2015-10-06 17.6338 22.9390 24.7268 26.1898 ... 26.5513 35.1320 24.2294
2015-10-07 17.6639 23.0324 24.8629 26.3598 ... 26.7751 35.6035 24.3671
2015-10-08 17.6957 23.1364 25.0122 26.5422 ... 27.0115 35.9016 24.6406
2015-10-09 17.7048 23.1646 25.0521 26.5903 ... 27.0320 35.9772 24.7723
... ... ... ... ... ... ... ... ... ...
2015-12-22 17.7493 23.1452 24.9775 26.4695 ... 27.4848 35.0903 23.8679
2015-12-23 17.8015 23.3149 25.2208 26.7663 ... 27.8272 35.5749 24.3623
2015-12-24 17.7991 23.3039 25.2052 26.7481 ... 27.7831 35.6084 24.3272
2015-12-28 17.7950 23.2811 25.1691 26.7015 ... 27.7230 35.4625 24.2816
2015-12-29 17.8270 23.3871 25.3226 26.8905 ... 28.0236 35.8047 24.4757
2015-12-30 17.8066 23.3216 25.2267 26.7707 ... 27.8239 35.5126 24.4184
2015-12-31 17.7733 23.2085 25.0635 26.5715 ... 27.5622 35.2356 24.0952
Google finance doesn’t provide common index data download. The Stooq site has the data for download.
In [32]: f[:10]
Out[32]:
Open High Low Close Volume
Date
2019-09-20 27102.18 27194.75 26926.68 26935.07 NaN
2019-09-19 27186.05 27272.17 27064.21 27094.79 68699381.0
2019-09-18 27075.39 27161.93 26899.15 27147.08 70454821.0
2019-09-17 27010.12 27110.80 26984.14 27110.80 67020055.0
2019-09-16 27146.06 27172.87 27032.56 27076.82 72079672.0
2019-09-13 27216.67 27277.55 27193.95 27219.52 72147749.0
2019-09-12 27197.32 27306.73 27105.01 27182.45 80090206.0
2019-09-11 26928.05 27137.04 26885.48 27137.04 80088953.0
2019-09-10 26805.83 26909.43 26717.05 26909.43 87146222.0
2019-09-09 26866.23 26900.83 26762.18 26835.51 78395202.0
In [35]: f.head()
Out[35]:
BOARDID SHORTNAME SECID ... NUMTRADES VOLRUR WAPRICE
TRADEDATE ...
2017-07-03 CNGD USDRUB_TOM USD000UTSTOM ... 24 1.864785e+09 NaN
2017-07-04 CETS USDRUB_TOM USD000UTSTOM ... 21053 1.090265e+11 59.2700
2017-07-04 CNGD USDRUB_TOM USD000UTSTOM ... 37 1.046416e+09 NaN
2017-07-05 CETS USDRUB_TOM USD000UTSTOM ... 50108 2.874226e+11 59.9234
2017-07-05 CNGD USDRUB_TOM USD000UTSTOM ... 35 6.339036e+09 NaN
[5 rows x 10 columns]
Making the same request repeatedly can use a lot of bandwidth, slow down your code and may result in your IP being
banned.
pandas-datareader allows you to cache queries using requests_cache by passing a requests_cache.
Session to DataReader or Options using the session parameter.
Below is an example with Yahoo! Finance. The session parameter is implemented for all datareaders.
In [1]: import pandas_datareader.data as web
30 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
In [9]: f.loc['2010-01-04']
Out[9]:
High 1.028000e+01
Low 1.005000e+01
Open 1.017000e+01
Close 1.028000e+01
Volume 6.085580e+07
Adj Close 7.339305e+00
Name: 2010-01-04 00:00:00, dtype: float64
A SQLite file named cache.sqlite will be created in the working directory, storing the request until the expiry
date.
For additional information on using requests-cache, see the documentation.
Web interfaces are constantly evolving and so there is constant evolution in this space. There are a number of notewor-
thy Python packages that integrate into the PyData ecosystem that are more narrowly focused than pandas-datareader.
Alpha Vantage provides real time and historical equity data. Users are required to get a free API key before using the
API. Documentation is available.
A python package simplifying access is available on github.
4.4.2 Tiingo
Tiingo aims to make high-end financial tools accessible investors. The API is documented. Users are required to get a
free API key before using the API.
A python package simplifying access is available on github.
4.4.3 Barchart
Barchart is a data provider covering a ride range of financial data. The free API provides up to two years of historical
data.
Awesome Quant maintains a large list of packages designed to provide access to financial data.
4.5.1 AlphaVantage
32 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
34 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
function
Alpha Vantage endpoint function
params
Parameters to use in API calls
read()
Read data from connector
url
API URL
params
Parameters to use in API calls
read()
Read data
Returns df – A dictionary of DataFrames. Tables are accessed by integer keys. See
df[‘DESCR’] for a description of the data set.
Return type dict
url
API URL
pandas_datareader.famafrench.get_available_datasets(**kwargs)
Get the list of datasets available from the Fama/French data library.
Parameters session (Session, default None) – requests.sessions.Session instance to be
used
Returns
Return type A list of valid inputs for get_data_famafrench.
Notes
4.5.5 Econdb
36 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
read one data from specified URL
url
API URL
4.5.6 Enigma
Examples
Download current snapshot for the following Florida Inspections Dataset: https://public.enigma.com/datasets/
bedaf052-5fcd-4758-8d27-048ce8746c6a
In the event that ENIGMA_API_KEY does not exist in your env, the key can be supplied as the second argument
or as the keyword argument api_key
>>> df = EnigmaReader(dataset_id='bedaf052-5fcd-4758-8d27-048ce8746c6a',
... api_key='INSERT_API_KEY').read()
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
get_current_snapshot_id(dataset_id)
Get ID of the most current snapshot of a dataset
get_dataset_metadata(dataset_id)
Get the Dataset Model of this EnigmaReader’s dataset https://docs.public.enigma.com/resources/dataset/
index.html
get_snapshot_export(snapshot_id)
Return raw CSV of a dataset
params
Parameters to use in API calls
read()
Read data
url
API URL
4.5.7 Eurostat
38 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
Notes
Market data is captured by the IEX system between approximately 7:45 a.m. and 5:15 p.m. ET.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
service
Service endpoint
url
API URL
class pandas_datareader.iex.ref.SymbolsReader(symbols=None, start=None, end=None,
retry_count=3, pause=0.1, ses-
sion=None)
Symbols available for trading on IEX
Notes
Returns symbols IEX supports for trading. Updated daily as of 7:45 a.m. ET.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
service
Service endpoint
url
API URL
class pandas_datareader.iex.stats.DailySummaryReader(symbols=None, start=None,
end=None, retry_count=3,
pause=0.1, session=None)
Daily statistics from IEX for a day or month
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Unfortunately, IEX’s API can only retrieve data one day or one month at a time. Rather than specifying a
date range, we will have to run the read function for each date provided.
Returns DataFrame
service
Service endpoint
url
API URL
class pandas_datareader.iex.stats.MonthlySummaryReader(symbols=None, start=None,
end=None, retry_count=3,
pause=0.1, session=None)
Monthly statistics from IEX
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
40 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
Unfortunately, IEX’s API can only retrieve data one day or one month at a time. Rather than speci-
fying a date range, we will have to run the read function for each date provided.
Returns DataFrame
service
Service endpoint
url
API URL
class pandas_datareader.iex.stats.RecordsReader(symbols=None, start=None,
end=None, retry_count=3, pause=0.1,
session=None)
Total matched volume information from IEX
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
service
Service endpoint
url
API URL
class pandas_datareader.iex.stats.RecentReader(symbols=None, start=None, end=None,
retry_count=3, pause=0.1, ses-
sion=None)
Recent trading volume from IEX
Notes
read()
Read data
service
Service endpoint
url
API URL
class pandas_datareader.iex.deep.Deep(symbols=None, service=None, start=None,
end=None, retry_count=3, pause=0.1, ses-
sion=None)
Retrieve order book data from IEX
Notes
Real-time depth of book quotations direct from IEX. Returns aggregated size of resting displayed orders at a
price and side. Does not indicate the size or number of individual orders at any price level. Non-displayed orders
and non-displayed portions of reserve orders are not counted.
Also provides last trade price and size information. Routed executions are not reported.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
service
Service endpoint
url
API URL
class pandas_datareader.iex.tops.TopsReader(symbols=None, start=None, end=None,
retry_count=3, pause=0.1, session=None)
Near-real time aggregated bid and offer positions
Notes
IEX’s aggregated best quoted bid and offer position for all securities on IEX’s displayed limit order book.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
42 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
service
Service endpoint
url
API URL
class pandas_datareader.iex.tops.LastReader(symbols=None, start=None, end=None,
retry_count=3, pause=0.1, session=None)
Information of executions on IEX
Notes
Last provides trade data for executions on IEX. Provides last sale price, size and time.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
service
Service endpoint
url
API URL
Notes
To avoid being penalized by Moex servers, pauses more than 0.1s between downloading ‘chunks’ of symbols
can be specified.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
url
Return a list of API URLs per symbol
4.5.10 NASDAQ
pandas_datareader.nasdaq_trader.get_nasdaq_symbols(retry_count=3, timeout=30,
pause=None)
Get the list of all available equity symbols from Nasdaq.
Returns nasdaq_tickers – DataFrame with company tickers, names, and other properties.
Return type pandas.DataFrame
4.5.12 Quandl
44 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
4.5.13 Stooq.com
Notes
See Stooq
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data
url
API URL
4.5.14 Tiingo
46 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
• api_key (str, optional) – Tiingo API key . If not provided the environmental vari-
able TIINGO_API_KEY is read. The API key is required.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data from connector
url
API URL
class pandas_datareader.tiingo.TiingoQuoteReader(symbols, start=None, end=None,
retry_count=3, pause=0.1, time-
out=30, session=None, freq=None,
api_key=None)
Read quotes (latest prices) from Tiingo
Parameters
• symbols ({str, List[str]}) – String symbol of like of symbols
• start (string, int, date, datetime, Timestamp) – Not used.
• end (string, int, date, datetime, Timestamp) – Not used.
• retry_count (int, default 3) – Number of times to retry query request.
• pause (float, default 0.1) – Time, in seconds, of the pause between retries.
• session (Session, default None) – requests.sessions.Session instance to be used
• freq ({str, None}) – Not used.
• api_key (str, optional) – Tiingo API key . If not provided the environmental vari-
able TIINGO_API_KEY is read. The API key is required.
Notes
This is a special case of the daily reader which automatically selected the latest data available for each symbol.
close()
Close network session
default_start_date
Default start date for reader. Defaults to 5 years before current date
params
Parameters to use in API calls
read()
Read data from connector
url
API URL
Notes
Reads https://apimedia.tiingo.com/docs/tiingo/daily/supported_tickers.zip
48 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
default_start_date
Default start date for reader. Defaults to 5 years before current date
get_countries()
Query information about countries
Notes
Notes
The first time this function is run it will download and cache the full list of available series. Depending on
the speed of your network connection, this can take time. Subsequent searches will use the cached copy,
so they should be much faster.
id : Data series indicator (for use with the indicator argument of WDI()) e.g. NY.GNS.ICTR.GN.ZS”
name: Short description of the data series source: Data collection project sourceOrganization: Data col-
lection organization note: sourceNote: topics:
url
API URL
pandas_datareader.wb.download(country=None, indicator=None, start=2003, end=2005,
freq=None, errors=’warn’, **kwargs)
Download data series from the World Bank’s World Development Indicators
Parameters
50 Chapter 4. Documentation
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
pandas_datareader.wb.get_indicators(**kwargs)
Download information about all World Bank data series
Parameters kwargs – keywords passed to WorldBankReader
pandas_datareader.wb.search(string=’gdp.*capi’, field=’name’, case=False, **kwargs)
Search available data series from the world bank
Parameters
• string (string) – regular expression
• field (string) – id, name, source, sourceNote, sourceOrganization, topics. See notes
• case (bool) – case sensitive search?
• kwargs – keywords passed to WorldBankReader
Notes
The first time this function is run it will download and cache the full list of available series. Depending on the
speed of your network connection, this can take time. Subsequent searches will use the cached copy, so they
should be much faster.
id : Data series indicator (for use with the indicator argument of WDI()) e.g. NY.GNS.ICTR.GN.ZS”
• name: Short description of the data series
• source: Data collection project
52 Chapter 4. Documentation
CHAPTER 5
• genindex
• modindex
• search
53
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
p
pandas_datareader.av.forex, 32
pandas_datareader.av.quotes, 34
pandas_datareader.av.sector, 33
pandas_datareader.av.time_series, 32
pandas_datareader.bankofcanada, 36
pandas_datareader.econdb, 36
pandas_datareader.enigma, 37
pandas_datareader.eurostat, 38
pandas_datareader.famafrench, 35
pandas_datareader.fred, 35
pandas_datareader.iex.daily, 38
pandas_datareader.iex.deep, 42
pandas_datareader.iex.market, 39
pandas_datareader.iex.ref, 39
pandas_datareader.iex.stats, 40
pandas_datareader.iex.tops, 42
pandas_datareader.moex, 43
pandas_datareader.nasdaq_trader, 44
pandas_datareader.oecd, 44
pandas_datareader.quandl, 44
pandas_datareader.stooq, 45
pandas_datareader.tiingo, 46
pandas_datareader.tsp, 48
pandas_datareader.wb, 49
55
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
A close() (pandas_datareader.iex.market.MarketReader
AVForexReader (class in pan- method), 39
das_datareader.av.forex), 32 close() (pandas_datareader.iex.ref.SymbolsReader
AVQuotesReader (class in pan- method), 40
das_datareader.av.quotes), 34 close() (pandas_datareader.iex.stats.DailySummaryReader
AVSectorPerformanceReader (class in pan- method), 40
das_datareader.av.sector), 33 close() (pandas_datareader.iex.stats.MonthlySummaryReader
AVTimeSeriesReader (class in pan- method), 40
das_datareader.av.time_series), 32 close() (pandas_datareader.iex.stats.RecentReader
method), 41
B close() (pandas_datareader.iex.stats.RecordsReader
BankOfCanadaReader (class in pan- method), 41
close() (pandas_datareader.iex.tops.LastReader
das_datareader.bankofcanada), 36
method), 43
C close() (pandas_datareader.iex.tops.TopsReader
method), 42
close() (pandas_datareader.av.forex.AVForexReader close() (pandas_datareader.moex.MoexReader
method), 32 method), 44
close() (pandas_datareader.av.quotes.AVQuotesReader close() (pandas_datareader.oecd.OECDReader
method), 34 method), 44
close() (pandas_datareader.av.sector.AVSectorPerformanceReader
close() (pandas_datareader.quandl.QuandlReader
method), 34 method), 45
close() (pandas_datareader.av.time_series.AVTimeSeriesReader
close() (pandas_datareader.stooq.StooqDailyReader
method), 33 method), 46
close() (pandas_datareader.bankofcanada.BankOfCanadaReader
close() (pandas_datareader.tiingo.TiingoDailyReader
method), 36 method), 47
close() (pandas_datareader.econdb.EcondbReader close() (pandas_datareader.tiingo.TiingoMetaDataReader
method), 36 method), 48
close() (pandas_datareader.enigma.EnigmaReader close() (pandas_datareader.tiingo.TiingoQuoteReader
method), 37 method), 47
close() (pandas_datareader.eurostat.EurostatReader close() (pandas_datareader.tsp.TSPReader method),
method), 38 49
close() (pandas_datareader.famafrench.FamaFrenchReaderclose() (pandas_datareader.wb.WorldBankReader
method), 35 method), 49
close() (pandas_datareader.fred.FredReader method),
35 D
close() (pandas_datareader.iex.daily.IEXDailyReader
DailySummaryReader (class in pan-
method), 39
das_datareader.iex.stats), 40
close() (pandas_datareader.iex.deep.Deep method),
data_key (pandas_datareader.av.forex.AVForexReader
42
attribute), 32
57
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
58 Index
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
Index 59
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
60 Index
pandas-datareader Documentation, Release 0.8.0+4.gec799a0
S url (pandas_datareader.famafrench.FamaFrenchReader
search() (in module pandas_datareader.wb), 51 attribute), 36
search() (pandas_datareader.wb.WorldBankReader url (pandas_datareader.fred.FredReader attribute), 35
method), 50 url (pandas_datareader.iex.daily.IEXDailyReader at-
service (pandas_datareader.iex.deep.Deep attribute), tribute), 39
42 url (pandas_datareader.iex.deep.Deep attribute), 42
service (pandas_datareader.iex.market.MarketReader url (pandas_datareader.iex.market.MarketReader at-
attribute), 39 tribute), 39
service (pandas_datareader.iex.ref.SymbolsReader at- url (pandas_datareader.iex.ref.SymbolsReader at-
tribute), 40 tribute), 40
url (pandas_datareader.iex.stats.DailySummaryReader
service (pandas_datareader.iex.stats.DailySummaryReader
attribute), 40 attribute), 40
url
service (pandas_datareader.iex.stats.MonthlySummaryReader(pandas_datareader.iex.stats.MonthlySummaryReader
attribute), 41 attribute), 41
service (pandas_datareader.iex.stats.RecentReader url (pandas_datareader.iex.stats.RecentReader at-
attribute), 42 tribute), 42
service (pandas_datareader.iex.stats.RecordsReader url (pandas_datareader.iex.stats.RecordsReader at-
attribute), 41 tribute), 41
service (pandas_datareader.iex.tops.LastReader at- url (pandas_datareader.iex.tops.LastReader attribute),
tribute), 43 43
service (pandas_datareader.iex.tops.TopsReader at- url (pandas_datareader.iex.tops.TopsReader attribute),
tribute), 42 43
StooqDailyReader (class in pan- url (pandas_datareader.moex.MoexReader attribute),
das_datareader.stooq), 45 44
SymbolsReader (class in pandas_datareader.iex.ref ), url (pandas_datareader.oecd.OECDReader attribute),
39 44
url (pandas_datareader.quandl.QuandlReader at-
T tribute), 45
TiingoDailyReader (class in pan- url (pandas_datareader.stooq.StooqDailyReader
das_datareader.tiingo), 46 attribute), 46
TiingoMetaDataReader (class in pan- url (pandas_datareader.tiingo.TiingoDailyReader at-
das_datareader.tiingo), 47 tribute), 47
TiingoQuoteReader (class in pan- url (pandas_datareader.tiingo.TiingoMetaDataReader
das_datareader.tiingo), 47 attribute), 48
TopsReader (class in pandas_datareader.iex.tops), 42 url (pandas_datareader.tiingo.TiingoQuoteReader at-
TSPReader (class in pandas_datareader.tsp), 48 tribute), 47
url (pandas_datareader.tsp.TSPReader attribute), 49
U url (pandas_datareader.wb.WorldBankReader at-
url (pandas_datareader.av.forex.AVForexReader at- tribute), 50
tribute), 32
url (pandas_datareader.av.quotes.AVQuotesReader at-
W
tribute), 35 WorldBankReader (class in pandas_datareader.wb),
url (pandas_datareader.av.sector.AVSectorPerformanceReader 49
attribute), 34
url (pandas_datareader.av.time_series.AVTimeSeriesReader
attribute), 33
url (pandas_datareader.bankofcanada.BankOfCanadaReader
attribute), 36
url (pandas_datareader.econdb.EcondbReader at-
tribute), 37
url (pandas_datareader.enigma.EnigmaReader at-
tribute), 38
url (pandas_datareader.eurostat.EurostatReader
attribute), 38
Index 61