Data resources - davidrpugh/pyeconomics GitHub Wiki

World Bank API:

The World Bank has an excellent web API that can be accessed and converted into a Pandas Dataframe using the wbdata library.

FRED Database:

The St. Louis Federal Reserve's FRED database is currently available via the pandas.io.data.DataReader module.

Yahoo!Finance:

Financial data from Yahoo!Finance is currently available via is currently available via the pandas.io.data.DataReader module.

Google Finance:

Unfortunately, Google Finance has discontinued their Finance web API. However, I came across this blog post describing how to download high-frequency (down to minute frequency) data from Google Finance.

  • Small project: write a Python function to grab minute level price and volume data for APPL, GOOG, K0, and XOM from Google Finance and import it into Pandas Dataframe.
  • Medium project: write a Python function to grab minute level price and volumen data for all stocks listed on the S&P 500 for all of 2011 and 2012 and import it into Pandas Dataframe.

Actually, I should probably check to see if you can get intraday data from Yahoo!Finance using the the Pandas DataReader module first before attempting either of the above!

Kenneth French's Data Library:

Kenneth French (of Fama and French fame) has an excellent library of financial data sets that has been made available via the pandas.io.data.DataReader module.

Quandl:

Online source of free economics and financial data (over 2 million time series!) They have a super simple web API for accessing the data.

  • Small project: write a simple function to grab a user specified time series via the web API and convert it into a Pandas Dataframe/Panel.
  • Medium project: write a more robust interface to the web API (similar to wbdata) that allows user to search for data, and then download the results into a Pandas Dataframe/Panel.

Angus Maddison data

Best available data on historical time series across countries.

  • Small project: Convert the data from its current form (ugly .xls spreadsheet), to a nicely formatted .csv file (or equivalent) so that it can be loaded into a Pandas Dataframe for analysis.