In [1]:
import numpy as np
import pandas as pd
from pandas_datareader import data as wb
import matplotlib.pyplot as plt
In [2]:
tickers = ['^GSPC', '^IXIC', '^GDAXI']

ind_data = pd.DataFrame()

for t in tickers:
    ind_data[t] = wb.DataReader(t, data_source='yahoo', start='1997-1-2')['Adj Close']
In [3]:
ind_data.head()
Out[3]:
^GSPC ^IXIC ^GDAXI
Date
1997-01-02 737.010010 1280.699951 2820.810059
1997-01-03 748.030029 1310.680054 2863.260010
1997-01-06 747.650024 1316.400024 2890.199951
1997-01-07 753.229980 1327.729980 2876.340088
1997-01-08 748.409973 1320.349976 2904.080078
In [4]:
ind_data.tail()
Out[4]:
^GSPC ^IXIC ^GDAXI
Date
2020-04-23 2797.800049 8494.750000 10513.790039
2020-04-24 2836.739990 8634.519531 10336.089844
2020-04-27 2878.479980 8730.160156 10659.990234
2020-04-28 2863.389893 8607.730469 10795.629883
2020-04-29 2949.760010 8914.312500 11107.740234
In [5]:
(ind_data / ind_data.iloc[0] * 100).plot(figsize=(15,6))
plt.show()
In [6]:
ind_returns = (ind_data / ind_data.shift(1)) - 1
ind_returns.tail()
Out[6]:
^GSPC ^IXIC ^GDAXI
Date
2020-04-23 -0.000539 -0.000074 0.009482
2020-04-24 0.013918 0.016454 -0.016902
2020-04-27 0.014714 0.011077 0.031337
2020-04-28 -0.005242 -0.014024 0.012724
2020-04-29 0.030164 0.035617 0.028911
In [7]:
annual_ind_returns = ind_returns.mean() * 100
annual_ind_returns
Out[7]:
^GSPC     0.031411
^IXIC     0.045832
^GDAXI    0.028516
dtype: float64
In [8]:
tickers = ['PG', '^GSPC', '^DJI']

data_2 = pd.DataFrame()

for t in tickers:
    data_2[t] = wb.DataReader(t, data_source='yahoo', start='2007-1-1')['Adj Close']
In [9]:
data_2.tail()
Out[9]:
PG ^GSPC ^DJI
Date
2020-04-23 119.400002 2797.800049 23515.259766
2020-04-24 118.779999 2836.739990 23775.269531
2020-04-27 117.449997 2878.479980 24133.779297
2020-04-28 116.889999 2863.389893 24101.550781
2020-04-29 117.940002 2949.810059 24735.410156
In [10]:
(data_2 / data_2.iloc[0] * 100).plot(figsize=(15,6))
plt.show()