How to Get Japan's Treasury Interest Rates Retrieved in Pandas
Steps
The Ministry of Finance provides the historical data of Japan's Treasury interest rates here.
https://www.mof.go.jp/english/policy/jgbs/reference/interest_rate/historical/jgbcme_all.csv
Interest Rate,,,,,,,,,,,,,,,(Unit : %)
Date,1Y,2Y,3Y,4Y,5Y,6Y,7Y,8Y,9Y,10Y,15Y,20Y,25Y,30Y,40Y
1974/9/24,10.327,9.362,8.83,8.515,8.348,8.29,8.24,8.121,8.127,-,-,-,-,-,-
1974/9/25,10.333,9.364,8.831,8.516,8.348,8.29,8.24,8.121,8.127,-,-,-,-,-,-
1974/9/26,10.34,9.366,8.832,8.516,8.348,8.29,8.24,8.122,8.128,-,-,-,-,-,-
1974/9/27,10.347,9.367,8.833,8.517,8.349,8.29,8.24,8.122,8.128,-,-,-,-,-,-
You can import and convert the data directly into a dataframe using Pandas' read_csv function. Since there are three digits below the decimal point and interest rates seem unlikely to have exceeded 100% in the last half-century in Japan, five significant figures will be sufficient, and thus I can safely set the dtype as np.float16.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import pandas as pd import numpy as np df = pd.read_csv( url, header = 1 , dtype = np.float16, index_col = "Date" , na_values = "-" , parse_dates = True ) df.head( 4 ) |
1Y | 2Y | 3Y | 4Y | ... | |
Date | |||||
1974-09-24 | 10.327 | 9.362 | 8.830 | 8.515 | ... |
1974-09-25 | 10.333 | 9.364 | 8.831 | 8.516 | ... |
1974-09-26 | 10.340 | 9.366 | 8.832 | 8.516 | ... |
1974-09-27 | 10.347 | 9.367 | 8.833 | 8.517 | ... |
Here is the code for the chart above.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import matplotlib from matplotlib import pyplot as plt from matplotlib import rcParams matplotlib.style.use( "default" ) rcParams[ "legend.frameon" ] = False rcParams[ "axes.spines.top" ] = False rcParams[ "axes.spines.right" ] = False rcParams[ "axes.labelsize" ] = "large" rcParams[ "font.sans-serif" ] = [ "Helvetica Neue" ] fig = plt.figure() ax = fig.add_subplot() df[[ "1Y" , "3Y" , "10Y" , "30Y" ]].plot( ax = ax, xlabel = "Year" , ylabel = "Interest rate (%)" , clip_on = False ) ax.set_ylim( 0 , ax.get_ylim()[ 1 ]) ax.set_title( "Japan's Treasury Bills and Bonds" ) |