Data Science with Python: Introduction


In [1]:
import pandas as pd

In [2]:
df = pd.read_csv("data/eu_revolving_loans.csv")

In [3]:
df.shape


Out[3]:
(198, 1)

In [4]:
df.head(7)


Out[4]:
Data Source in SDW: null
NaN MIR.M.AT.B.A2Z.A.R.A.2250.EUR.N MIR.M.BE.B.A2Z.A.R.A.2250.EUR.N MIR.M.CY.B.A2Z.A.R.A.2250.EUR.N MIR.M.DE.B.A2Z.A.R.A.2250.EUR.N MIR.M.EE.B.A2Z.A.R.A.2250.EUR.N MIR.M.ES.B.A2Z.A.R.A.2250.EUR.N MIR.M.FI.B.A2Z.A.R.A.2250.EUR.N MIR.M.FR.B.A2Z.A.R.A.2250.EUR.N MIR.M.GR.B.A2Z.A.R.A.2250.EUR.N MIR.M.IE.B.A2Z.A.R.A.2250.EUR.N MIR.M.IT.B.A2Z.A.R.A.2250.EUR.N MIR.M.LT.B.A2Z.A.R.A.2250.EUR.N MIR.M.LU.B.A2Z.A.R.A.2250.EUR.N MIR.M.LV.B.A2Z.A.R.A.2250.EUR.N MIR.M.MT.B.A2Z.A.R.A.2250.EUR.N MIR.M.NL.B.A2Z.A.R.A.2250.EUR.N MIR.M.PT.B.A2Z.A.R.A.2250.EUR.N MIR.M.SI.B.A2Z.A.R.A.2250.EUR.N MIR.M.SK.B.A2Z.A.R.A.2250.EUR.N MIR.M.U2.B.A2Z.A.R.A.2250.EUR.N
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Collection: End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) Average of observations through period (A)
Period\Unit: [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ]
2016Feb 4.20 8.09 6.13 8.85 16.38 11.03 6.41 6.00 8.18 10.40 6.07 9.60 7.24 21.58 6.79 5.83 15.28 6.80 13.86 7.36
2016Jan 4.17 8.05 6.13 8.83 16.41 10.85 6.44 6.10 8.19 9.91 6.07 9.58 7.10 21.51 6.82 5.81 15.41 6.79 13.97 7.35
2015Dec 3.99 8.21 6.16 8.69 16.32 10.49 6.40 5.86 8.22 10.37 5.91 9.45 6.96 21.59 6.84 5.88 15.16 6.65 13.72 7.23

In [5]:
df = df[2:]

In [6]:
df.head(7)


Out[6]:
Data Source in SDW: null
Collection: End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) Average of observations through period (A)
Period\Unit: [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ]
2016Feb 4.20 8.09 6.13 8.85 16.38 11.03 6.41 6.00 8.18 10.40 6.07 9.60 7.24 21.58 6.79 5.83 15.28 6.80 13.86 7.36
2016Jan 4.17 8.05 6.13 8.83 16.41 10.85 6.44 6.10 8.19 9.91 6.07 9.58 7.10 21.51 6.82 5.81 15.41 6.79 13.97 7.35
2015Dec 3.99 8.21 6.16 8.69 16.32 10.49 6.40 5.86 8.22 10.37 5.91 9.45 6.96 21.59 6.84 5.88 15.16 6.65 13.72 7.23
2015Nov 4.09 8.20 6.15 8.82 16.37 10.73 6.49 6.18 8.30 9.11 6.12 9.53 6.88 21.67 6.78 5.97 15.32 6.79 14.10 7.37
2015Oct 4.10 8.40 6.16 8.89 16.42 10.86 6.52 6.15 8.34 9.29 6.11 9.40 7.08 21.74 6.78 5.93 15.55 6.74 14.12 7.41

In [42]:
df = pd.read_csv("data/eu_revolving_loans.csv", 
                 header=[1,2,3], index_col=0, skiprows=1, na_values=['-'])

In [43]:
df.head(7)


Out[43]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Collection: End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) Average of observations through period (A)
Period\Unit: [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ]
2016Feb 4.20 8.09 6.13 8.85 16.38 11.03 6.41 6.00 8.18 10.40 6.07 9.60 7.24 21.58 6.79 5.83 15.28 6.80 13.86 7.36
2016Jan 4.17 8.05 6.13 8.83 16.41 10.85 6.44 6.10 8.19 9.91 6.07 9.58 7.10 21.51 6.82 5.81 15.41 6.79 13.97 7.35
2015Dec 3.99 8.21 6.16 8.69 16.32 10.49 6.40 5.86 8.22 10.37 5.91 9.45 6.96 21.59 6.84 5.88 15.16 6.65 13.72 7.23
2015Nov 4.09 8.20 6.15 8.82 16.37 10.73 6.49 6.18 8.30 9.11 6.12 9.53 6.88 21.67 6.78 5.97 15.32 6.79 14.10 7.37
2015Oct 4.10 8.40 6.16 8.89 16.42 10.86 6.52 6.15 8.34 9.29 6.11 9.40 7.08 21.74 6.78 5.93 15.55 6.74 14.12 7.41
2015Sep 4.32 8.58 6.17 8.95 16.44 10.87 6.52 6.41 8.53 9.38 6.14 9.33 7.07 21.75 6.79 5.97 15.51 6.81 14.21 7.53
2015Aug 4.28 8.27 6.36 8.91 16.40 10.81 6.47 6.39 8.59 8.91 6.12 9.39 7.13 21.80 6.60 6.05 15.21 6.79 14.26 7.49

In [44]:
df.tail(5)


Out[44]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Collection: End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) Average of observations through period (A)
Period\Unit: [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ]
2000May 9.06 11.55 NaN 10.25 NaN 13.02 10.83 11.03 19.35 13.08 9.36 NaN NaN NaN NaN 8.93 9.4 NaN NaN 10.44
2000Apr 8.99 10.82 NaN 10.21 NaN 13.01 10.54 11.03 20.46 13.08 9.18 NaN NaN NaN NaN 8.44 9.2 NaN NaN 10.33
2000Mar 8.90 10.48 NaN 10.02 NaN 12.96 10.49 10.92 20.87 12.84 9.05 NaN NaN NaN NaN 8.44 9.1 NaN NaN 10.16
2000Feb 8.93 10.14 NaN 9.96 NaN 12.95 10.35 10.91 21.22 12.53 8.97 NaN NaN NaN NaN 7.94 9.1 NaN NaN 10.09
2000Jan 8.83 10.01 NaN 9.81 NaN 12.96 10.28 10.91 21.62 12.53 8.88 NaN NaN NaN NaN 7.44 9.0 NaN NaN 9.98

In [45]:
df.shape


Out[45]:
(194, 20)

In [46]:
df.describe()


Out[46]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Collection: End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) End of period (E) Average of observations through period (A)
Period\Unit: [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ]
count 194.000000 142.000000 159.000000 194.00000 156.000000 194.000000 194.000000 194.000000 194.000000 194.000000 194.000000 132.000000 158.000000 146.000000 104.000000 194.000000 194.000000 125.000000 98.000000 194.000000
mean 6.660000 10.143028 7.226038 10.46799 11.182051 11.848763 8.899742 9.957835 13.086443 11.723763 8.090722 6.043636 5.992025 10.660274 6.826538 6.991856 11.905464 7.878720 13.237449 9.497526
std 1.555478 1.316609 0.493942 0.78234 4.477234 1.453811 1.853112 1.749429 2.871678 2.178378 1.094160 1.865785 1.120911 5.262896 0.383246 1.227009 2.331037 1.876324 2.099137 1.118740
min 3.990000 7.670000 6.130000 8.69000 5.940000 8.070000 6.400000 5.860000 8.180000 7.340000 5.910000 3.480000 3.100000 4.450000 6.000000 5.620000 7.900000 4.180000 5.830000 7.230000
25% 5.317500 9.150000 6.840000 10.12750 7.182500 10.730000 6.880000 8.745000 10.982500 9.992500 7.150000 4.137500 5.320000 7.697500 6.707500 6.282500 10.127500 6.950000 13.667500 8.622500
50% 6.855000 10.160000 7.250000 10.40000 8.370000 12.425000 9.150000 10.650000 13.795000 12.840000 8.395000 6.410000 5.815000 8.740000 6.790000 6.615000 11.430000 7.500000 13.860000 9.750000
75% 7.920000 11.220000 7.685000 10.96000 16.372500 13.020000 10.332500 11.227500 14.507500 13.217500 8.902500 7.207500 7.015000 10.070000 6.852500 7.327500 13.272500 8.740000 14.170000 10.447500
max 9.120000 12.630000 8.020000 12.01000 16.900000 14.090000 12.460000 12.290000 21.620000 14.410000 10.230000 9.640000 8.680000 21.920000 8.010000 10.920000 16.040000 11.130000 14.700000 11.390000

In [47]:
%pylab inline
df.plot(legend=False)


Populating the interactive namespace from numpy and matplotlib
Out[47]:
<matplotlib.axes._subplots.AxesSubplot at 0x110823410>

In [48]:
df = df.iloc[::-1]
df.plot(legend=False, title="EU Countries Revolving Loan Trend from 2000 - 2016")


Out[48]:
<matplotlib.axes._subplots.AxesSubplot at 0x1108386d0>

In [49]:
df.columns = df.columns.droplevel(1)
df.head()


Out[49]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Period\Unit: [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ] [Percent per annum ]
2000Jan 8.83 10.01 NaN 9.81 NaN 12.96 10.28 10.91 21.62 12.53 8.88 NaN NaN NaN NaN 7.44 9.0 NaN NaN 9.98
2000Feb 8.93 10.14 NaN 9.96 NaN 12.95 10.35 10.91 21.22 12.53 8.97 NaN NaN NaN NaN 7.94 9.1 NaN NaN 10.09
2000Mar 8.90 10.48 NaN 10.02 NaN 12.96 10.49 10.92 20.87 12.84 9.05 NaN NaN NaN NaN 8.44 9.1 NaN NaN 10.16
2000Apr 8.99 10.82 NaN 10.21 NaN 13.01 10.54 11.03 20.46 13.08 9.18 NaN NaN NaN NaN 8.44 9.2 NaN NaN 10.33
2000May 9.06 11.55 NaN 10.25 NaN 13.02 10.83 11.03 19.35 13.08 9.36 NaN NaN NaN NaN 8.93 9.4 NaN NaN 10.44

In [50]:
df.columns = df.columns.droplevel(1)
df.head()


Out[50]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
2000Jan 8.83 10.01 NaN 9.81 NaN 12.96 10.28 10.91 21.62 12.53 8.88 NaN NaN NaN NaN 7.44 9.0 NaN NaN 9.98
2000Feb 8.93 10.14 NaN 9.96 NaN 12.95 10.35 10.91 21.22 12.53 8.97 NaN NaN NaN NaN 7.94 9.1 NaN NaN 10.09
2000Mar 8.90 10.48 NaN 10.02 NaN 12.96 10.49 10.92 20.87 12.84 9.05 NaN NaN NaN NaN 8.44 9.1 NaN NaN 10.16
2000Apr 8.99 10.82 NaN 10.21 NaN 13.01 10.54 11.03 20.46 13.08 9.18 NaN NaN NaN NaN 8.44 9.2 NaN NaN 10.33
2000May 9.06 11.55 NaN 10.25 NaN 13.02 10.83 11.03 19.35 13.08 9.36 NaN NaN NaN NaN 8.93 9.4 NaN NaN 10.44

Examine some basic statistics


In [52]:
# default to Pearson Correlation:
df.corr()


Out[52]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Austria 1.000000 0.933296 -0.158893 0.767335 -0.779483 0.812410 0.903886 0.935643 0.936635 0.878040 0.928940 0.346137 -0.643426 -0.589684 0.349041 0.728811 -0.851445 0.506641 -0.699131 0.971953
Belgium 0.933296 1.000000 0.091032 0.840900 -0.816134 0.767005 0.878510 0.934225 0.863154 0.885750 0.904793 0.196706 -0.724829 -0.668038 0.275887 0.839943 -0.798902 0.797719 -0.593504 0.963826
Cyprus -0.158893 0.091032 1.000000 -0.026293 0.210236 -0.460870 -0.285169 -0.022965 -0.057134 -0.222016 -0.042734 -0.741061 0.084047 -0.364128 -0.104222 0.069418 0.094653 0.108693 0.193465 -0.099245
Germany 0.767335 0.840900 -0.026293 1.000000 -0.713350 0.662287 0.878585 0.848756 0.693189 0.808686 0.737979 0.211564 -0.629488 -0.574756 0.370332 0.514504 -0.612874 0.603209 -0.677940 0.871138
Estonia -0.779483 -0.816134 0.210236 -0.713350 1.000000 -0.675819 -0.762952 -0.855953 -0.857996 -0.864777 -0.617540 -0.414964 0.782377 0.547214 -0.066872 -0.381090 0.831245 -0.286466 0.396512 -0.800245
Spain 0.812410 0.767005 -0.460870 0.662287 -0.675819 1.000000 0.874300 0.735147 0.731535 0.762828 0.747915 0.577643 -0.635261 -0.196498 0.290660 0.484302 -0.615433 0.438563 -0.682231 0.807865
Finland 0.903886 0.878510 -0.285169 0.878585 -0.762952 0.874300 1.000000 0.858658 0.831995 0.868378 0.881585 0.443685 -0.599308 -0.383452 0.479796 0.667566 -0.686999 0.530942 -0.850394 0.940608
France 0.935643 0.934225 -0.022965 0.848756 -0.855953 0.735147 0.858658 1.000000 0.890779 0.916316 0.842324 0.212757 -0.737581 -0.713534 0.156894 0.597432 -0.892937 0.434010 -0.460562 0.959292
Greece (GR) 0.936635 0.863154 -0.057134 0.693189 -0.857996 0.731535 0.831995 0.890779 1.000000 0.854965 0.816312 0.307985 -0.817328 -0.688367 0.162721 0.689301 -0.832680 0.500846 -0.490263 0.893096
Ireland 0.878040 0.885750 -0.222016 0.808686 -0.864777 0.762828 0.868378 0.916316 0.854965 1.000000 0.764243 0.499445 -0.760592 -0.605204 0.206695 0.548385 -0.868070 0.387349 -0.489360 0.898830
Italy 0.928940 0.904793 -0.042734 0.737979 -0.617540 0.747915 0.881585 0.842324 0.816312 0.764243 1.000000 0.126948 -0.406044 -0.532614 0.569316 0.808319 -0.712177 0.370174 -0.803785 0.941492
Lithuania 0.346137 0.196706 -0.741061 0.211564 -0.414964 0.577643 0.443685 0.212757 0.307985 0.499445 0.126948 1.000000 -0.305057 0.207314 0.121146 0.102826 -0.301238 0.159917 -0.263597 0.283624
Luxembourg -0.643426 -0.724829 0.084047 -0.629488 0.782377 -0.635261 -0.599308 -0.737581 -0.817328 -0.760592 -0.406044 -0.305057 1.000000 0.591442 0.140274 -0.203444 0.646547 -0.416776 0.206214 -0.663332
Latvia -0.589684 -0.668038 -0.364128 -0.574756 0.547214 -0.196498 -0.383452 -0.713534 -0.688367 -0.605204 -0.532614 0.207314 0.591442 1.000000 -0.014712 -0.336862 0.689702 -0.127818 0.062097 -0.613611
Malta 0.349041 0.275887 -0.104222 0.370332 -0.066872 0.290660 0.479796 0.156894 0.162721 0.206695 0.569316 0.121146 0.140274 -0.014712 1.000000 0.598059 -0.003573 0.348854 -0.829734 0.365031
Netherlands 0.728811 0.839943 0.069418 0.514504 -0.381090 0.484302 0.667566 0.597432 0.689301 0.548385 0.808319 0.102826 -0.203444 -0.336862 0.598059 1.000000 -0.447009 0.578807 -0.773962 0.740492
Portugal -0.851445 -0.798902 0.094653 -0.612874 0.831245 -0.615433 -0.686999 -0.892937 -0.832680 -0.868070 -0.712177 -0.301238 0.646547 0.689702 -0.003573 -0.447009 1.000000 -0.158221 0.219427 -0.811654
Slovenia 0.506641 0.797719 0.108693 0.603209 -0.286466 0.438563 0.530942 0.434010 0.500846 0.387349 0.370174 0.159917 -0.416776 -0.127818 0.348854 0.578807 -0.158221 1.000000 -0.737147 0.507534
Slovakia -0.699131 -0.593504 0.193465 -0.677940 0.396512 -0.682231 -0.850394 -0.460562 -0.490263 -0.489360 -0.803785 -0.263597 0.206214 0.062097 -0.829734 -0.773962 0.219427 -0.737147 1.000000 -0.694345
Euro area (changing composition) 0.971953 0.963826 -0.099245 0.871138 -0.800245 0.807865 0.940608 0.959292 0.893096 0.898830 0.941492 0.283624 -0.663332 -0.613611 0.365031 0.740492 -0.811654 0.507534 -0.694345 1.000000

In [53]:
eu_corr = df.corr()

We will first try to understand those highly correlated countries


In [56]:
eu_corr[(eu_corr.abs() > 0.5) & (eu_corr < 1)]


Out[56]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Austria NaN 0.933296 NaN 0.767335 -0.779483 0.812410 0.903886 0.935643 0.936635 0.878040 0.928940 NaN -0.643426 -0.589684 NaN 0.728811 -0.851445 0.506641 -0.699131 0.971953
Belgium 0.933296 NaN NaN 0.840900 -0.816134 0.767005 0.878510 0.934225 0.863154 0.885750 0.904793 NaN -0.724829 -0.668038 NaN 0.839943 -0.798902 0.797719 -0.593504 0.963826
Cyprus NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN -0.741061 NaN NaN NaN NaN NaN NaN NaN NaN
Germany 0.767335 0.840900 NaN NaN -0.713350 0.662287 0.878585 0.848756 0.693189 0.808686 0.737979 NaN -0.629488 -0.574756 NaN 0.514504 -0.612874 0.603209 -0.677940 0.871138
Estonia -0.779483 -0.816134 NaN -0.713350 NaN -0.675819 -0.762952 -0.855953 -0.857996 -0.864777 -0.617540 NaN 0.782377 0.547214 NaN NaN 0.831245 NaN NaN -0.800245
Spain 0.812410 0.767005 NaN 0.662287 -0.675819 NaN 0.874300 0.735147 0.731535 0.762828 0.747915 0.577643 -0.635261 NaN NaN NaN -0.615433 NaN -0.682231 0.807865
Finland 0.903886 0.878510 NaN 0.878585 -0.762952 0.874300 NaN 0.858658 0.831995 0.868378 0.881585 NaN -0.599308 NaN NaN 0.667566 -0.686999 0.530942 -0.850394 0.940608
France 0.935643 0.934225 NaN 0.848756 -0.855953 0.735147 0.858658 NaN 0.890779 0.916316 0.842324 NaN -0.737581 -0.713534 NaN 0.597432 -0.892937 NaN NaN 0.959292
Greece (GR) 0.936635 0.863154 NaN 0.693189 -0.857996 0.731535 0.831995 0.890779 NaN 0.854965 0.816312 NaN -0.817328 -0.688367 NaN 0.689301 -0.832680 0.500846 NaN 0.893096
Ireland 0.878040 0.885750 NaN 0.808686 -0.864777 0.762828 0.868378 0.916316 0.854965 NaN 0.764243 NaN -0.760592 -0.605204 NaN 0.548385 -0.868070 NaN NaN 0.898830
Italy 0.928940 0.904793 NaN 0.737979 -0.617540 0.747915 0.881585 0.842324 0.816312 0.764243 NaN NaN NaN -0.532614 0.569316 0.808319 -0.712177 NaN -0.803785 0.941492
Lithuania NaN NaN -0.741061 NaN NaN 0.577643 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Luxembourg -0.643426 -0.724829 NaN -0.629488 0.782377 -0.635261 -0.599308 -0.737581 -0.817328 -0.760592 NaN NaN NaN 0.591442 NaN NaN 0.646547 NaN NaN -0.663332
Latvia -0.589684 -0.668038 NaN -0.574756 0.547214 NaN NaN -0.713534 -0.688367 -0.605204 -0.532614 NaN 0.591442 NaN NaN NaN 0.689702 NaN NaN -0.613611
Malta NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.569316 NaN NaN NaN NaN 0.598059 NaN NaN -0.829734 NaN
Netherlands 0.728811 0.839943 NaN 0.514504 NaN NaN 0.667566 0.597432 0.689301 0.548385 0.808319 NaN NaN NaN 0.598059 NaN NaN 0.578807 -0.773962 0.740492
Portugal -0.851445 -0.798902 NaN -0.612874 0.831245 -0.615433 -0.686999 -0.892937 -0.832680 -0.868070 -0.712177 NaN 0.646547 0.689702 NaN NaN NaN NaN NaN -0.811654
Slovenia 0.506641 0.797719 NaN 0.603209 NaN NaN 0.530942 NaN 0.500846 NaN NaN NaN NaN NaN NaN 0.578807 NaN NaN -0.737147 0.507534
Slovakia -0.699131 -0.593504 NaN -0.677940 NaN -0.682231 -0.850394 NaN NaN NaN -0.803785 NaN NaN NaN -0.829734 -0.773962 NaN -0.737147 NaN -0.694345
Euro area (changing composition) 0.971953 0.963826 NaN 0.871138 -0.800245 0.807865 0.940608 0.959292 0.893096 0.898830 0.941492 NaN -0.663332 -0.613611 NaN 0.740492 -0.811654 0.507534 -0.694345 NaN

In [58]:
eu_corr[(eu_corr.abs() > 0.5) & (eu_corr < 1)].dropna(thresh=4)


Out[58]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Austria NaN 0.933296 NaN 0.767335 -0.779483 0.812410 0.903886 0.935643 0.936635 0.878040 0.928940 NaN -0.643426 -0.589684 NaN 0.728811 -0.851445 0.506641 -0.699131 0.971953
Belgium 0.933296 NaN NaN 0.840900 -0.816134 0.767005 0.878510 0.934225 0.863154 0.885750 0.904793 NaN -0.724829 -0.668038 NaN 0.839943 -0.798902 0.797719 -0.593504 0.963826
Germany 0.767335 0.840900 NaN NaN -0.713350 0.662287 0.878585 0.848756 0.693189 0.808686 0.737979 NaN -0.629488 -0.574756 NaN 0.514504 -0.612874 0.603209 -0.677940 0.871138
Estonia -0.779483 -0.816134 NaN -0.713350 NaN -0.675819 -0.762952 -0.855953 -0.857996 -0.864777 -0.617540 NaN 0.782377 0.547214 NaN NaN 0.831245 NaN NaN -0.800245
Spain 0.812410 0.767005 NaN 0.662287 -0.675819 NaN 0.874300 0.735147 0.731535 0.762828 0.747915 0.577643 -0.635261 NaN NaN NaN -0.615433 NaN -0.682231 0.807865
Finland 0.903886 0.878510 NaN 0.878585 -0.762952 0.874300 NaN 0.858658 0.831995 0.868378 0.881585 NaN -0.599308 NaN NaN 0.667566 -0.686999 0.530942 -0.850394 0.940608
France 0.935643 0.934225 NaN 0.848756 -0.855953 0.735147 0.858658 NaN 0.890779 0.916316 0.842324 NaN -0.737581 -0.713534 NaN 0.597432 -0.892937 NaN NaN 0.959292
Greece (GR) 0.936635 0.863154 NaN 0.693189 -0.857996 0.731535 0.831995 0.890779 NaN 0.854965 0.816312 NaN -0.817328 -0.688367 NaN 0.689301 -0.832680 0.500846 NaN 0.893096
Ireland 0.878040 0.885750 NaN 0.808686 -0.864777 0.762828 0.868378 0.916316 0.854965 NaN 0.764243 NaN -0.760592 -0.605204 NaN 0.548385 -0.868070 NaN NaN 0.898830
Italy 0.928940 0.904793 NaN 0.737979 -0.617540 0.747915 0.881585 0.842324 0.816312 0.764243 NaN NaN NaN -0.532614 0.569316 0.808319 -0.712177 NaN -0.803785 0.941492
Luxembourg -0.643426 -0.724829 NaN -0.629488 0.782377 -0.635261 -0.599308 -0.737581 -0.817328 -0.760592 NaN NaN NaN 0.591442 NaN NaN 0.646547 NaN NaN -0.663332
Latvia -0.589684 -0.668038 NaN -0.574756 0.547214 NaN NaN -0.713534 -0.688367 -0.605204 -0.532614 NaN 0.591442 NaN NaN NaN 0.689702 NaN NaN -0.613611
Netherlands 0.728811 0.839943 NaN 0.514504 NaN NaN 0.667566 0.597432 0.689301 0.548385 0.808319 NaN NaN NaN 0.598059 NaN NaN 0.578807 -0.773962 0.740492
Portugal -0.851445 -0.798902 NaN -0.612874 0.831245 -0.615433 -0.686999 -0.892937 -0.832680 -0.868070 -0.712177 NaN 0.646547 0.689702 NaN NaN NaN NaN NaN -0.811654
Slovenia 0.506641 0.797719 NaN 0.603209 NaN NaN 0.530942 NaN 0.500846 NaN NaN NaN NaN NaN NaN 0.578807 NaN NaN -0.737147 0.507534
Slovakia -0.699131 -0.593504 NaN -0.677940 NaN -0.682231 -0.850394 NaN NaN NaN -0.803785 NaN NaN NaN -0.829734 -0.773962 NaN -0.737147 NaN -0.694345
Euro area (changing composition) 0.971953 0.963826 NaN 0.871138 -0.800245 0.807865 0.940608 0.959292 0.893096 0.898830 0.941492 NaN -0.663332 -0.613611 NaN 0.740492 -0.811654 0.507534 -0.694345 NaN

In [59]:
df.cov()


Out[59]:
Austria Belgium Cyprus Germany Estonia Spain Finland France Greece (GR) Ireland Italy Lithuania Luxembourg Latvia Malta Netherlands Portugal Slovenia Slovakia Euro area (changing composition)
Austria 2.419511 2.117914 -0.103836 0.933779 -4.537638 1.837161 2.605430 2.546069 4.183789 2.975167 1.581002 0.792435 -0.948666 -3.854001 0.163653 1.390998 -3.087235 1.181801 -1.689152 1.691368
Belgium 2.117914 1.733458 0.049440 1.002935 -3.956379 1.473269 2.424479 2.411744 3.744800 2.797553 1.460503 0.416091 -0.995070 -4.010365 0.115879 1.547613 -2.601993 1.373334 -1.336453 1.610461
Cyprus -0.103836 0.049440 0.243979 -0.010626 0.469122 -0.334862 -0.253941 -0.019056 -0.063483 -0.240351 -0.019208 -0.700008 0.046658 -0.971472 -0.020438 0.015821 0.102699 0.104461 0.206691 -0.048723
Germany 0.933779 1.002935 -0.010626 0.612056 -2.631286 0.753268 1.273740 1.161649 1.557338 1.378188 0.631714 0.352959 -0.578313 -2.571430 0.132814 0.493892 -1.117675 1.040043 -1.251074 0.762450
Estonia -4.537638 -3.956379 0.469122 -2.631286 20.045624 -4.452756 -6.187331 -6.400211 -8.625996 -8.536770 -2.488495 -3.633100 3.950162 13.288814 -0.114851 -0.789547 8.094346 -2.534875 3.665488 -3.540396
Spain 1.837161 1.473269 -0.334862 0.753268 -4.452756 2.113566 2.355431 1.869728 3.054069 2.415838 1.189709 1.640827 -1.047819 -1.521189 0.171538 0.863916 -2.085632 1.265243 -2.108673 1.313941
Finland 2.605430 2.424479 -0.253941 1.273740 -6.187331 2.355431 3.434025 2.783674 4.427495 3.505449 1.787502 1.602446 -1.212779 -3.745060 0.356414 1.517902 -2.967614 1.972751 -3.155825 1.950022
France 2.546069 2.411744 -0.019056 1.161649 -6.400211 1.869728 2.783674 3.060503 4.475095 3.492007 1.612340 0.672821 -1.386407 -6.245393 0.102598 1.282427 -3.641384 1.402943 -1.614758 1.877485
Greece (GR) 4.183789 3.744800 -0.063483 1.557338 -8.625996 3.054069 4.427495 4.475095 8.246534 5.348316 2.564915 1.311169 -2.060430 -8.129378 0.147866 2.428802 -5.573948 2.176516 -2.401811 2.869212
Ireland 2.975167 2.797553 -0.240351 1.378188 -8.536770 2.415838 3.505449 3.492007 5.348316 4.745330 1.821568 2.116274 -1.871640 -7.158215 0.175517 1.465772 -4.407956 1.656375 -2.200670 2.190482
Italy 1.581002 1.460503 -0.019208 0.631714 -2.488495 1.189709 1.787502 1.612340 2.564915 1.821568 1.197186 0.209933 -0.412498 -2.498610 0.185392 1.085204 -1.816427 0.618364 -1.334718 1.152461
Lithuania 0.792435 0.416091 -0.700008 0.352959 -3.633100 1.640827 1.602446 0.672821 1.311169 2.116274 0.209933 3.481155 -0.689817 2.104141 0.093534 0.094881 -1.172571 0.568251 -1.134336 0.535213
Luxembourg -0.948666 -0.995070 0.046658 -0.578313 3.950162 -1.047819 -1.212779 -1.386407 -2.060430 -1.871640 -0.412498 -0.689817 1.256440 3.624038 0.070076 -0.105255 1.577011 -0.966070 0.571645 -0.737019
Latvia -3.854001 -4.010365 -0.971472 -2.571430 13.288814 -1.521189 -3.745060 -6.245393 -8.129378 -7.158215 -2.498610 2.104141 3.624038 27.698076 -0.032079 -0.843912 7.800204 -1.316909 0.760400 -3.192018
Malta 0.163653 0.115879 -0.020438 0.132814 -0.114851 0.171538 0.356414 0.102598 0.147866 0.175517 0.185392 0.093534 0.070076 -0.032079 0.146877 0.122156 -0.002563 0.194226 -0.632835 0.141194
Netherlands 1.390998 1.547613 0.015821 0.493892 -0.789547 0.863916 1.517902 1.282427 2.428802 1.465772 1.085204 0.094881 -0.105255 -0.843912 0.122156 1.505550 -1.278538 0.551202 -0.821616 1.016476
Portugal -3.087235 -2.601993 0.102699 -1.117675 8.094346 -2.085632 -2.967614 -3.641384 -5.573948 -4.407956 -1.816427 -1.172571 1.577011 7.800204 -0.002563 -1.278538 5.433735 -0.597043 0.859804 -2.116652
Slovenia 1.181801 1.373334 0.104461 1.040043 -2.534875 1.265243 1.972751 1.402943 2.176516 1.656375 0.618364 0.568251 -0.966070 -1.316909 0.194226 0.551202 -0.597043 3.520594 -2.073396 0.980974
Slovakia -1.689152 -1.336453 0.206691 -1.251074 3.665488 -2.108673 -3.155825 -1.614758 -2.401811 -2.200670 -1.334718 -1.134336 0.571645 0.760400 -0.632835 -0.821616 0.859804 -2.073396 4.406376 -1.382989
Euro area (changing composition) 1.691368 1.610461 -0.048723 0.762450 -3.540396 1.313941 1.950022 1.877485 2.869212 2.190482 1.152461 0.535213 -0.737019 -3.192018 0.141194 1.016476 -2.116652 0.980974 -1.382989 1.251578

In [60]:
df.cov().min()


Out[60]:
Austria                            -4.537638
Belgium                            -4.010365
Cyprus                             -0.971472
Germany                            -2.631286
Estonia                            -8.625996
Spain                              -4.452756
Finland                            -6.187331
France                             -6.400211
Greece (GR)                        -8.625996
Ireland                            -8.536770
Italy                              -2.498610
Lithuania                          -3.633100
Luxembourg                         -2.060430
Latvia                             -8.129378
Malta                              -0.632835
Netherlands                        -1.278538
Portugal                           -5.573948
Slovenia                           -2.534875
Slovakia                           -3.155825
Euro area (changing composition)   -3.540396
dtype: float64

In [62]:
df.cov().max()


Out[62]:
Austria                              4.183789
Belgium                              3.744800
Cyprus                               0.469122
Germany                              1.557338
Estonia                             20.045624
Spain                                3.054069
Finland                              4.427495
France                               4.475095
Greece (GR)                          8.246534
Ireland                              5.348316
Italy                                2.564915
Lithuania                            3.481155
Luxembourg                           3.950162
Latvia                              27.698076
Malta                                0.356414
Netherlands                          2.428802
Portugal                             8.094346
Slovenia                             3.520594
Slovakia                             4.406376
Euro area (changing composition)     2.869212
dtype: float64

In [63]:
%pylab inline
df[['Latvia', 'Estonia', 'Greece (GR)', 'Ireland']].plot()


Populating the interactive namespace from numpy and matplotlib
Out[63]:
<matplotlib.axes._subplots.AxesSubplot at 0x110819d50>

Let's fix the date index


In [65]:
df.index


Out[65]:
Index([u'2000Jan', u'2000Feb', u'2000Mar', u'2000Apr', u'2000May', u'2000Jun',
       u'2000Jul', u'2000Aug', u'2000Sep', u'2000Oct',
       ...
       u'2015May', u'2015Jun', u'2015Jul', u'2015Aug', u'2015Sep', u'2015Oct',
       u'2015Nov', u'2015Dec', u'2016Jan', u'2016Feb'],
      dtype='object', length=194)

In [67]:
df.index = df.index.map(lambda x: datetime.datetime.strptime(x, '%Y%b').date())

In [68]:
df[['Latvia', 'Estonia', 'Greece (GR)', 'Ireland']].plot()


Out[68]:
<matplotlib.axes._subplots.AxesSubplot at 0x110fb4610>

In [ ]: