forked from FindBoat/Kaggle
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreprocess.py
More file actions
55 lines (46 loc) · 1.57 KB
/
Copy pathpreprocess.py
File metadata and controls
55 lines (46 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env python
import utilities
def translate_weekday(data):
print 'Translating weekdays...'
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday', 'Saturday', 'Sunday']
for i in range(len(data)):
for j in range(len(weekdays)):
if data[i][4] == weekdays[j]:
data[i][4] = j + 1
return data
def fill_NAs(data):
print 'Filling NAs...'
for target in range(6, len(data[0])):
if data[0][target] == 'NA':
for i in range(len(data)):
if not data[i][target] == 'NA':
for j in range(0, i):
data[j][target] = data[i][target]
break
for i in range(len(data)):
for j in range(6, len(data[0])):
if data[i][j] == 'NA':
if i > 0 and not data[i - 1][j] == 'NA':
data[i][j] = data[i - 1][j]
return data
def get_train_cv_data_by_chunk(data):
chunk_map = utilities.get_chunk_map(data, 1)
train_data = []
cv_data = []
for chunk_id in chunk_map.keys():
num = len(chunk_map[chunk_id])
train_num = 147
train_data += chunk_map[chunk_id][0 : train_num]
cv_data += chunk_map[chunk_id][train_num : :]
return train_data, cv_data
def get_train_cv_targets(train_data, cv_data):
return get_targets(train_data), get_targets(cv_data)
def get_targets(data):
targets = []
for line in data:
n = len(line)
targets.append(line[n - 39 : :])
return targets
if __name__ == '__main__':
pass