In [22]:
%matplotlib inline
import os
import datetime as dt
import numpy as np
import pandas as pd
import statsmodels as sm
from IPython.display import display, HTML
import matplotlib.pyplot as plt
In [23]:
# Setup directories
CWD = os.getcwd()
DATA_DIR = CWD + "/data/"
CLEAN_DATA_DIR = DATA_DIR + "clean/"
OUT_DIR = CWD + "/output/"
In [24]:
f = open(DATA_DIR+"eng-daily-01012016-12312016.csv", "r")
lines = f.readlines()
lines = lines[25:]
f.close()
f = open(CLEAN_DATA_DIR+"eng-daily-01012016-12312016.csv", "w+")
f.writelines(lines)
f.truncate()
f.close()
prev = pd.read_csv(CLEAN_DATA_DIR+"eng-daily-01012016-12312016.csv")
# display(prev)
In [25]:
def clean_data(in_dir, out_dir, filename):
"""
"""
f = open(in_dir+filename, "r")
lines = f.readlines()
lines = lines[25:]
f.close()
f = open(out_dir+filename, "w+")
f.writelines(lines)
f.truncate()
f.close()
In [26]:
frames = []
for filename in os.listdir(DATA_DIR):
if filename != "clean":
clean_data(DATA_DIR, CLEAN_DATA_DIR, filename)
frames.append(pd.read_csv(CLEAN_DATA_DIR+filename))
train_data = pd.concat(frames)
train_data["Date/Time"] = pd.to_datetime(train_data["Date/Time"], format="%Y-%m-%d")
train_data.sort_values("Date/Time", ascending=True, inplace=True)
display(train_data)
Date/Time
Year
Month
Day
Data Quality
Max Temp (°C)
Max Temp Flag
Min Temp (°C)
Min Temp Flag
Mean Temp (°C)
...
Total Snow (cm)
Total Snow Flag
Total Precip (mm)
Total Precip Flag
Snow on Grnd (cm)
Snow on Grnd Flag
Dir of Max Gust (10s deg)
Dir of Max Gust Flag
Spd of Max Gust (km/h)
Spd of Max Gust Flag
0
1953-01-01
1953
1
1
NaN
0.6
NaN
-6.7
NaN
-3.1
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
1
1953-01-02
1953
1
2
NaN
1.7
NaN
-1.1
NaN
0.3
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
2
1953-01-03
1953
1
3
NaN
1.7
NaN
-2.2
NaN
-0.3
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
3
1953-01-04
1953
1
4
NaN
-2.2
NaN
-11.7
NaN
-7.0
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
4
1953-01-05
1953
1
5
NaN
-1.1
NaN
-6.7
NaN
-3.9
...
0.5
NaN
0.5
NaN
NaN
NaN
NaN
NaN
NaN
NaN
5
1953-01-06
1953
1
6
NaN
-5.6
NaN
-11.7
NaN
-8.7
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
6
1953-01-07
1953
1
7
NaN
-10.0
NaN
-15.6
NaN
-12.8
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
7
1953-01-08
1953
1
8
NaN
-5.6
NaN
-12.8
NaN
-9.2
...
7.6
NaN
7.6
NaN
NaN
NaN
NaN
NaN
NaN
NaN
8
1953-01-09
1953
1
9
NaN
-2.8
NaN
-10.6
NaN
-6.7
...
0.0
NaN
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
9
1953-01-10
1953
1
10
NaN
1.1
NaN
-3.9
NaN
-1.4
...
5.1
NaN
12.2
NaN
NaN
NaN
NaN
NaN
NaN
NaN
10
1953-01-11
1953
1
11
NaN
1.7
NaN
-6.1
NaN
-2.2
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
11
1953-01-12
1953
1
12
NaN
1.7
NaN
-12.2
NaN
-5.3
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
12
1953-01-13
1953
1
13
NaN
4.4
NaN
-1.7
NaN
1.4
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
13
1953-01-14
1953
1
14
NaN
5.0
NaN
-6.7
NaN
-0.9
...
0.0
NaN
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
14
1953-01-15
1953
1
15
NaN
10.6
NaN
0.6
NaN
5.6
...
0.0
T
1.3
NaN
NaN
NaN
NaN
NaN
NaN
NaN
15
1953-01-16
1953
1
16
NaN
-0.6
NaN
-8.9
NaN
-4.8
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
16
1953-01-17
1953
1
17
NaN
3.9
NaN
-12.2
NaN
-4.2
...
0.0
T
9.1
NaN
NaN
NaN
NaN
NaN
NaN
NaN
17
1953-01-18
1953
1
18
NaN
2.8
NaN
-2.2
NaN
0.3
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
18
1953-01-19
1953
1
19
NaN
1.1
NaN
-1.1
NaN
0.0
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
19
1953-01-20
1953
1
20
NaN
1.1
NaN
-4.4
NaN
-1.7
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
20
1953-01-21
1953
1
21
NaN
0.6
NaN
-5.6
NaN
-2.5
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
21
1953-01-22
1953
1
22
NaN
2.8
NaN
-6.1
NaN
-1.7
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
22
1953-01-23
1953
1
23
NaN
5.6
NaN
-2.2
NaN
1.7
...
0.0
NaN
7.4
NaN
NaN
NaN
NaN
NaN
NaN
NaN
23
1953-01-24
1953
1
24
NaN
7.2
NaN
0.0
NaN
3.6
...
0.0
T
0.3
NaN
NaN
NaN
NaN
NaN
NaN
NaN
24
1953-01-25
1953
1
25
NaN
-3.9
NaN
-8.3
NaN
-6.1
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
25
1953-01-26
1953
1
26
NaN
-1.7
NaN
-13.3
NaN
-7.5
...
0.0
NaN
0.0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
26
1953-01-27
1953
1
27
NaN
2.8
NaN
-7.8
NaN
-2.5
...
2.5
NaN
2.5
NaN
NaN
NaN
NaN
NaN
NaN
NaN
27
1953-01-28
1953
1
28
NaN
0.6
NaN
-4.4
NaN
-1.9
...
0.5
NaN
0.5
NaN
NaN
NaN
NaN
NaN
NaN
NaN
28
1953-01-29
1953
1
29
NaN
-1.7
NaN
-7.2
NaN
-4.5
...
0.0
T
0.0
T
NaN
NaN
NaN
NaN
NaN
NaN
29
1953-01-30
1953
1
30
NaN
0.0
NaN
-7.2
NaN
-3.6
...
0.5
NaN
0.5
NaN
NaN
NaN
NaN
NaN
NaN
NaN
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
335
2017-12-02
2017
12
2
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
336
2017-12-03
2017
12
3
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
337
2017-12-04
2017
12
4
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
338
2017-12-05
2017
12
5
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
339
2017-12-06
2017
12
6
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
340
2017-12-07
2017
12
7
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
341
2017-12-08
2017
12
8
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
342
2017-12-09
2017
12
9
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
343
2017-12-10
2017
12
10
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
344
2017-12-11
2017
12
11
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
345
2017-12-12
2017
12
12
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
346
2017-12-13
2017
12
13
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
347
2017-12-14
2017
12
14
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
348
2017-12-15
2017
12
15
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
349
2017-12-16
2017
12
16
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
350
2017-12-17
2017
12
17
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
351
2017-12-18
2017
12
18
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
352
2017-12-19
2017
12
19
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
353
2017-12-20
2017
12
20
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
354
2017-12-21
2017
12
21
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
355
2017-12-22
2017
12
22
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
356
2017-12-23
2017
12
23
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
357
2017-12-24
2017
12
24
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
358
2017-12-25
2017
12
25
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
359
2017-12-26
2017
12
26
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
360
2017-12-27
2017
12
27
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
361
2017-12-28
2017
12
28
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
362
2017-12-29
2017
12
29
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
363
2017-12-30
2017
12
30
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
364
2017-12-31
2017
12
31
‡
NaN
NaN
NaN
NaN
NaN
...
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
23741 rows × 27 columns
In [28]:
plt.figure(figsize=(17, 9))
plt.plot_date(train_data["Date/Time"], train_data["Total Precip (mm)"], fmt='b-')
plt.ylabel("Precipitation [mm]")
plt.xlabel("Day")
plt.title("Toronto Pearson Daily Precipitation from 1953 to 2017")
Out[28]:
<matplotlib.text.Text at 0x7fa1d4bfb080>
In [ ]:
Content source: Pretendi/Team_Jimmy_Paul
Similar notebooks: