In [1]:
import pandas as pd
In [2]:
df = pd.read_csv("FinanceData.csv")
In [3]:
print(df.shape)
(4441, 8)
In [4]:
print(df.columns)
Index(['time', 'DJI', 'IBM', 'GS', '3M', 'BOE', 'CHEV', 'UT'], dtype='object')
In [5]:
print(df.head())
          time           DJI        IBM         GS         3M        BOE  \
0  946854000.0  11357.509766  86.003464  73.697304  30.769329  27.366121   
1  946940400.0  10997.929688  83.084152  69.055344  29.546700  27.323591   
2  947026800.0  11122.650391  86.003464  65.821632  30.402544  29.026001   
3  947113200.0  11253.259766  84.520630  68.638115  32.847771  29.323893   
4  947199600.0  11522.559570  84.149895  68.898918  33.499851  30.175095   

        CHEV         UT  
0  22.632412  21.918337  
1  22.632412  21.019682  
2  23.038380  20.603233  
3  24.019453  21.589565  
4  24.442333  22.444378  
In [6]:
df.set_index(["time"],inplace=True)
print(df.head())
                      DJI        IBM         GS         3M        BOE  \
time                                                                    
946854000.0  11357.509766  86.003464  73.697304  30.769329  27.366121   
946940400.0  10997.929688  83.084152  69.055344  29.546700  27.323591   
947026800.0  11122.650391  86.003464  65.821632  30.402544  29.026001   
947113200.0  11253.259766  84.520630  68.638115  32.847771  29.323893   
947199600.0  11522.559570  84.149895  68.898918  33.499851  30.175095   

                  CHEV         UT  
time                               
946854000.0  22.632412  21.918337  
946940400.0  22.632412  21.019682  
947026800.0  23.038380  20.603233  
947113200.0  24.019453  21.589565  
947199600.0  24.442333  22.444378  
In [7]:
# df.pct_change returns the percent change over a given number of periods.
df_pct = df.pct_change().dropna()*100
In [8]:
df_pct.head()
Out[8]:
DJI IBM GS 3M BOE CHEV UT
time
946940400.0 -3.166012 -3.394412 -6.298684 -3.973532 -0.155411 0.000000 -4.100015
947026800.0 1.134038 3.513681 -4.682783 2.896581 6.230550 1.793746 -1.981234
947113200.0 1.174265 -1.724156 4.278963 8.042837 1.026294 4.258429 4.787268
947199600.0 2.393083 -0.438633 0.379968 1.985158 2.902759 1.760573 3.959380
947458800.0 0.430812 3.964796 2.195252 -0.486620 -1.410431 -2.698936 0.976534
In [9]:
df_pct.mean()
Out[9]:
DJI     0.021281
IBM     0.024979
GS      0.053250
3M      0.052900
BOE     0.066502
CHEV    0.048298
UT      0.051723
dtype: float64
In [10]:
df_pct.std()
Out[10]:
DJI     1.147497
IBM     1.637800
GS      2.392358
3M      1.450030
BOE     1.894778
CHEV    1.617879
UT      1.687029
dtype: float64
In [11]:
df_pct.rolling(30).mean().dropna()
Out[11]:
DJI IBM GS 3M BOE CHEV UT
time
9.505692e+08 -0.183711 0.060671 -0.021294 -0.147655 -0.093176 -0.229144 -0.546596
9.506556e+08 -0.126905 0.134686 0.051379 -0.045593 -0.196222 -0.187398 -0.417108
9.507420e+08 -0.179490 0.046362 0.174814 -0.092605 -0.381536 -0.249867 -0.223170
9.508284e+08 -0.312169 -0.017509 -0.021088 -0.437408 -0.549079 -0.458802 -0.490521
9.511740e+08 -0.364109 -0.047331 -0.002818 -0.406032 -0.379634 -0.539364 -0.550900
... ... ... ... ... ... ... ...
1.503266e+09 0.046447 -0.257970 -0.068899 -0.089452 0.521151 0.123758 -0.193069
1.503353e+09 0.076485 -0.236820 -0.043160 -0.061479 0.540962 0.139447 -0.194216
1.503439e+09 0.043959 -0.221205 -0.062146 -0.113905 0.515136 0.122392 -0.160193
1.503526e+09 0.036332 -0.200927 -0.102529 -0.119638 0.527627 0.140643 -0.192224
1.503612e+09 0.027872 -0.195506 -0.084260 -0.130211 0.450982 0.155229 -0.208082

4411 rows × 7 columns

In [12]:
df_pct.rolling(30).std().dropna()
Out[12]:
DJI IBM GS 3M BOE CHEV UT
time
9.505692e+08 1.380534 2.279115 2.979719 3.013206 2.823954 2.233188 2.759121
9.506556e+08 1.285369 2.197639 2.844874 2.929851 2.882106 2.249267 2.676524
9.507420e+08 1.264097 2.108596 2.709496 2.892085 2.621583 2.218156 2.768490
9.508284e+08 1.324552 2.191467 2.613279 2.475302 2.688273 2.069055 2.652802
9.511740e+08 1.242843 2.203450 2.618092 2.512752 3.049311 2.026270 2.567263
... ... ... ... ... ... ... ...
1.503266e+09 0.401778 0.892278 1.154905 1.093565 1.991544 0.772822 0.936243
1.503353e+09 0.431007 0.902390 1.176232 1.096228 2.000771 0.776622 0.935525
1.503439e+09 0.428914 0.916531 1.176871 1.092088 2.011865 0.768401 0.966069
1.503526e+09 0.429967 0.927220 1.148111 1.092461 2.009064 0.777518 0.993849
1.503612e+09 0.425182 0.931302 1.141279 1.089569 2.030006 0.784638 0.989903

4411 rows × 7 columns

In [13]:
df_pct.corr()
Out[13]:
DJI IBM GS 3M BOE CHEV UT
DJI 1.000000 0.661121 0.679821 0.744087 0.656854 0.657910 0.755360
IBM 0.661121 1.000000 0.454908 0.414273 0.362354 0.365761 0.443960
GS 0.679821 0.454908 1.000000 0.454814 0.419358 0.416083 0.473321
3M 0.744087 0.414273 0.454814 1.000000 0.482745 0.482598 0.606152
BOE 0.656854 0.362354 0.419358 0.482745 1.000000 0.418531 0.603533
CHEV 0.657910 0.365761 0.416083 0.482598 0.418531 1.000000 0.477779
UT 0.755360 0.443960 0.473321 0.606152 0.603533 0.477779 1.000000
In [14]:
df_corr = df_pct.copy()
In [15]:
df_mean = df_corr.rolling(30).mean().dropna()
df_std = df_corr.rolling(30).std().dropna()
In [16]:
print(df.shape)
print(df_mean.head())
(4441, 7)
                  DJI       IBM        GS        3M       BOE      CHEV  \
time                                                                      
950569200.0 -0.183711  0.060671 -0.021294 -0.147655 -0.093176 -0.229144   
950655600.0 -0.126905  0.134686  0.051379 -0.045593 -0.196222 -0.187398   
950742000.0 -0.179490  0.046362  0.174814 -0.092605 -0.381536 -0.249867   
950828400.0 -0.312169 -0.017509 -0.021088 -0.437408 -0.549079 -0.458802   
951174000.0 -0.364109 -0.047331 -0.002818 -0.406032 -0.379634 -0.539364   

                   UT  
time                   
950569200.0 -0.546596  
950655600.0 -0.417108  
950742000.0 -0.223170  
950828400.0 -0.490521  
951174000.0 -0.550900  
In [17]:
df_corr -= df_corr.rolling(30).mean()
In [18]:
df_corr.corr()
Out[18]:
DJI IBM GS 3M BOE CHEV UT
DJI 1.000000 0.664675 0.680277 0.747516 0.660576 0.661948 0.756369
IBM 0.664675 1.000000 0.455666 0.418052 0.366147 0.369166 0.446113
GS 0.680277 0.455666 1.000000 0.453485 0.421995 0.418103 0.473167
3M 0.747516 0.418052 0.453485 1.000000 0.486984 0.486493 0.606011
BOE 0.660576 0.366147 0.421995 0.486984 1.000000 0.420866 0.615546
CHEV 0.661948 0.369166 0.418103 0.486493 0.420866 1.000000 0.477292
UT 0.756369 0.446113 0.473167 0.606011 0.615546 0.477292 1.000000
In [ ]: