-
Notifications
You must be signed in to change notification settings - Fork 3
/
modify_submission.py
50 lines (44 loc) · 1.01 KB
/
modify_submission.py
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
#!/usr/bin/python
import csv
import sys
import re
que_file = open('questions.csv','rb')
que_csv = csv.reader(que_file , delimiter=',')
train_stat_file = open('tr_statistics.csv','rb')
dev_csv = csv.reader(train_stat_file , delimiter=',')
nb_output_file = open('nb_modified_op.csv','rb')
output_csv = csv.reader(nb_output_file , delimiter=',')
que_csv.next()
dev_csv.next()
output_csv.next()
D={} # dictionary for each device
for row in dev_csv:
devid = row[0]
count=int(row[1])
D[devid]=count
train_stat_file.close()
Q={}
for que in que_csv:
qno=que[0]
devid=que[2]
Q[qno]=devid
que_file.close()
outlines=["QuestionId,IsTrue\r\n"]
for op in output_csv:
qno=op[0]
p=op[1]
if re.match(p,'nan'):
prob=1.0
else:
count=D[Q[qno]]
print "count",count
pr=float(p)
prob=pr/count
outline=qno+","+prob.__format__("1.12f")
print outline
outlines.append(outline+"\r\n")
nb_output_file.close()
print "writing to nb_modified_csv file"
out=open("submission_op2.csv","w")
out.writelines(outlines)
out.close()