This notebook shows how to process the file of deposits and swap rates that was downloaded in notebook 'Download_USD_LIBOR'. In this notebook, we extract and plot a couple of yield curves.
import pandas as pd
import pylab as pl
import os
from datetime import datetime
libor_rates = pd.read_pickle((os.path.join('..', 'data', 'df_libor.pkl')))
dt_obs = [datetime(2011, 12, 9), datetime(2011, 12, 20)]
def get_swap_curve(libor_rates, dt):
df_libor = pd.DataFrame(libor_rates.xs(dt), columns=['Rate'])
maturities_dic = {'Swap1Y': 1,
'Swap2Y': 2,
'Swap3Y': 3,
'Swap4Y': 4,
'Swap5Y': 5,
'Swap7Y': 7,
'Swap10Y': 10,
'Swap30Y': 30,
'Libor1M': 1.0 / 12,
'Libor3M': 3.0 / 12,
'Libor6M': 6.0 / 12}
df_libor['Maturity'] = [maturities_dic[k] for k in df_libor.index]
df_libor = df_libor.sort_index(by='Maturity')
return(df_libor)
libor_c = [get_swap_curve(libor_rates, dt) for dt in dt_obs]
p1, = pl.plot(libor_c[0]['Maturity'], libor_c[0]['Rate'])
p2, = pl.plot(libor_c[1]['Maturity'], libor_c[1]['Rate'])
pl.xlabel('Maturity (Yr)')
pl.ylabel('Deposit/Libor Rate')
pl.title('Libor Deposit and Swap Rates\n from Table H15 at www.federalreserve.gov')
legend([p1, p2], [dt.strftime('%d-%b-%Y') for dt in dt_obs], loc='lower right')
pl.show()