import pandas as pd
data = pd.read_csv("AAPL.csv", index_col=0, parse_dates=True)
data.head()
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2020-01-27 | 77.514999 | 77.942497 | 76.220001 | 77.237503 | 76.576187 | 161940000 |
2020-01-28 | 78.150002 | 79.599998 | 78.047501 | 79.422501 | 78.742477 | 162234000 |
2020-01-29 | 81.112503 | 81.962502 | 80.345001 | 81.084999 | 80.390747 | 216229200 |
2020-01-30 | 80.135002 | 81.022499 | 79.687500 | 80.967499 | 80.274246 | 126743200 |
2020-01-31 | 80.232498 | 80.669998 | 77.072502 | 77.377502 | 76.714989 | 199588400 |
data['Daily chg'] = data['Close'] - data['Open']
data.head()
Open | High | Low | Close | Adj Close | Volume | Daily chg | |
---|---|---|---|---|---|---|---|
Date | |||||||
2020-01-27 | 77.514999 | 77.942497 | 76.220001 | 77.237503 | 76.576187 | 161940000 | -0.277496 |
2020-01-28 | 78.150002 | 79.599998 | 78.047501 | 79.422501 | 78.742477 | 162234000 | 1.272499 |
2020-01-29 | 81.112503 | 81.962502 | 80.345001 | 81.084999 | 80.390747 | 216229200 | -0.027504 |
2020-01-30 | 80.135002 | 81.022499 | 79.687500 | 80.967499 | 80.274246 | 126743200 | 0.832497 |
2020-01-31 | 80.232498 | 80.669998 | 77.072502 | 77.377502 | 76.714989 | 199588400 | -2.854996 |
data['Normalized'] = data['Close'] / data['Close'].iloc[0]
data.head()
Open | High | Low | Close | Adj Close | Volume | Daily chg | Normalized | |
---|---|---|---|---|---|---|---|---|
Date | ||||||||
2020-01-27 | 77.514999 | 77.942497 | 76.220001 | 77.237503 | 76.576187 | 161940000 | -0.277496 | 1.000000 |
2020-01-28 | 78.150002 | 79.599998 | 78.047501 | 79.422501 | 78.742477 | 162234000 | 1.272499 | 1.028289 |
2020-01-29 | 81.112503 | 81.962502 | 80.345001 | 81.084999 | 80.390747 | 216229200 | -0.027504 | 1.049814 |
2020-01-30 | 80.135002 | 81.022499 | 79.687500 | 80.967499 | 80.274246 | 126743200 | 0.832497 | 1.048293 |
2020-01-31 | 80.232498 | 80.669998 | 77.072502 | 77.377502 | 76.714989 | 199588400 | -2.854996 | 1.001813 |
data.tail()
Open | High | Low | Close | Adj Close | Volume | Daily chg | Normalized | |
---|---|---|---|---|---|---|---|---|
Date | ||||||||
2021-01-20 | 128.660004 | 132.490005 | 128.550003 | 132.029999 | 132.029999 | 104319500 | 3.369995 | 1.709403 |
2021-01-21 | 133.800003 | 139.669998 | 133.589996 | 136.869995 | 136.869995 | 120529500 | 3.069992 | 1.772067 |
2021-01-22 | 136.279999 | 139.850006 | 135.020004 | 139.070007 | 139.070007 | 114459400 | 2.790008 | 1.800550 |
2021-01-25 | 143.070007 | 145.089996 | 136.539993 | 142.919998 | 142.919998 | 157282400 | -0.150009 | 1.850396 |
2021-01-26 | 143.600006 | 144.300003 | 141.369995 | 142.080002 | 142.080002 | 50388565 | -1.520004 | 1.839521 |
data['Close'].min()
56.092499
data.min()
Open 5.702000e+01 High 5.712500e+01 Low 5.315250e+01 Close 5.609250e+01 Adj Close 5.574422e+01 Volume 2.225040e+07 Daily chg -6.870003e+00 Normalized 7.262340e-01 dtype: float64
data['Close'].argmin()
39
data.iloc[35:44]
Open | High | Low | Close | Adj Close | Volume | Daily chg | Normalized | |
---|---|---|---|---|---|---|---|---|
Date | ||||||||
2020-03-17 | 61.877499 | 64.402496 | 59.599998 | 63.215000 | 62.822491 | 324056000 | 1.337501 | 0.818450 |
2020-03-18 | 59.942501 | 62.500000 | 59.279999 | 61.667500 | 61.284599 | 300233600 | 1.724999 | 0.798414 |
2020-03-19 | 61.847500 | 63.209999 | 60.652500 | 61.195000 | 60.815033 | 271857200 | -0.652500 | 0.792296 |
2020-03-20 | 61.794998 | 62.957500 | 57.000000 | 57.310001 | 56.954155 | 401693200 | -4.484997 | 0.741997 |
2020-03-23 | 57.020000 | 57.125000 | 53.152500 | 56.092499 | 55.744217 | 336752800 | -0.927501 | 0.726234 |
2020-03-24 | 59.090000 | 61.922501 | 58.575001 | 61.720001 | 61.336773 | 287531200 | 2.630001 | 0.799094 |
2020-03-25 | 62.687500 | 64.562500 | 61.075001 | 61.380001 | 60.998886 | 303602000 | -1.307499 | 0.794692 |
2020-03-26 | 61.630001 | 64.669998 | 61.590000 | 64.610001 | 64.208832 | 252087200 | 2.980000 | 0.836511 |
2020-03-27 | 63.187500 | 63.967499 | 61.762501 | 61.935001 | 61.550438 | 204216800 | -1.252499 | 0.801877 |
data['Normalized'].min()
0.7262339772946828
data['Normalized'].argmin()
39
data['Close'].max()
142.919998
data['Close'].argmax()
251
data.iloc[251:]
Open | High | Low | Close | Adj Close | Volume | Daily chg | Normalized | |
---|---|---|---|---|---|---|---|---|
Date | ||||||||
2021-01-25 | 143.070007 | 145.089996 | 136.539993 | 142.919998 | 142.919998 | 157282400 | -0.150009 | 1.850396 |
2021-01-26 | 143.600006 | 144.300003 | 141.369995 | 142.080002 | 142.080002 | 50388565 | -1.520004 | 1.839521 |
data['Close'].mean()
98.8017784426877
data.head()
Open | High | Low | Close | Adj Close | Volume | Daily chg | Normalized | |
---|---|---|---|---|---|---|---|---|
Date | ||||||||
2020-01-27 | 77.514999 | 77.942497 | 76.220001 | 77.237503 | 76.576187 | 161940000 | -0.277496 | 1.000000 |
2020-01-28 | 78.150002 | 79.599998 | 78.047501 | 79.422501 | 78.742477 | 162234000 | 1.272499 | 1.028289 |
2020-01-29 | 81.112503 | 81.962502 | 80.345001 | 81.084999 | 80.390747 | 216229200 | -0.027504 | 1.049814 |
2020-01-30 | 80.135002 | 81.022499 | 79.687500 | 80.967499 | 80.274246 | 126743200 | 0.832497 | 1.048293 |
2020-01-31 | 80.232498 | 80.669998 | 77.072502 | 77.377502 | 76.714989 | 199588400 | -2.854996 | 1.001813 |
data.drop(labels=['High', 'Low', 'Adj Close', 'Volume'], axis=1, inplace=True)
data.head()
Open | Close | Daily chg | Normalized | |
---|---|---|---|---|
Date | ||||
2020-01-27 | 77.514999 | 77.237503 | -0.277496 | 1.000000 |
2020-01-28 | 78.150002 | 79.422501 | 1.272499 | 1.028289 |
2020-01-29 | 81.112503 | 81.084999 | -0.027504 | 1.049814 |
2020-01-30 | 80.135002 | 80.967499 | 0.832497 | 1.048293 |
2020-01-31 | 80.232498 | 77.377502 | -2.854996 | 1.001813 |