viruthik commited on
Commit
4804fa2
·
1 Parent(s): 6048926

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +77 -252
app.py CHANGED
@@ -1,290 +1,115 @@
1
- from flask import Flask,request,render_template
2
- from flask_cors import cross_origin
3
  import pickle
4
  import pandas as pd
5
 
6
- model = pickle.load(open('flight_rf.pkl','rb'))
7
 
8
- app = Flask(__name__)
 
9
 
10
- @app.route('/')
11
- @cross_origin()
12
- def home():
13
- return render_template('home.html')
14
 
15
- @app.route('/predict',methods=['GET','POST'])
16
- @cross_origin()
17
- def predict():
18
- if request.method=='POST':
19
- dep_time = request.form['Dep_Time']
20
 
21
- Journey_day = pd.to_datetime(dep_time,format="%Y-%m-%dT%H:%M").day
22
- Journey_month = pd.to_datetime(dep_time,format="%Y-%m-%dT%H:%M").month
23
 
24
- Departure_hour = pd.to_datetime(dep_time,format="%Y-%m-%dT%H:%M").hour
25
- Departure_min = pd.to_datetime(dep_time,format="%Y-%m-%dT%H:%M").minute
26
 
27
- arrival_time = request.form['Arrival_Time']
28
- Arrival_hour = pd.to_datetime(arrival_time,format="%Y-%m-%dT%H:%M").hour
29
- Arrival_min = pd.to_datetime(arrival_time,format="%Y-%m-%dT%H:%M").minute
30
 
31
- Total_stops = int(request.form['stops'])
 
32
 
33
- dur_hour = abs(Arrival_hour-Departure_hour)
34
- dur_min = abs(Arrival_min-Departure_min)
35
 
36
- airline=request.form['airline']
37
- if(airline=='Jet Airways'):
38
- Jet_Airways = 1
39
- IndiGo = 0
40
- Air_India = 0
41
- Multiple_carriers = 0
42
- SpiceJet = 0
43
- Vistara = 0
44
- GoAir = 0
45
- Multiple_carriers_Premium_economy = 0
46
- Jet_Airways_Business = 0
47
- Vistara_Premium_economy = 0
48
- Trujet = 0
49
 
50
- elif (airline=='IndiGo'):
51
- Jet_Airways = 0
 
52
  IndiGo = 1
53
- Air_India = 0
54
- Multiple_carriers = 0
55
- SpiceJet = 0
56
- Vistara = 0
57
- GoAir = 0
58
- Multiple_carriers_Premium_economy = 0
59
- Jet_Airways_Business = 0
60
- Vistara_Premium_economy = 0
61
- Trujet = 0
62
-
63
- elif (airline=='Air India'):
64
- Jet_Airways = 0
65
- IndiGo = 0
66
  Air_India = 1
67
- Multiple_carriers = 0
68
- SpiceJet = 0
69
- Vistara = 0
70
- GoAir = 0
71
- Multiple_carriers_Premium_economy = 0
72
- Jet_Airways_Business = 0
73
- Vistara_Premium_economy = 0
74
- Trujet = 0
75
-
76
- elif (airline=='Multiple carriers'):
77
- Jet_Airways = 0
78
- IndiGo = 0
79
- Air_India = 0
80
  Multiple_carriers = 1
81
- SpiceJet = 0
82
- Vistara = 0
83
- GoAir = 0
84
- Multiple_carriers_Premium_economy = 0
85
- Jet_Airways_Business = 0
86
- Vistara_Premium_economy = 0
87
- Trujet = 0
88
-
89
- elif (airline=='SpiceJet'):
90
- Jet_Airways = 0
91
- IndiGo = 0
92
- Air_India = 0
93
- Multiple_carriers = 0
94
  SpiceJet = 1
95
- Vistara = 0
96
- GoAir = 0
97
- Multiple_carriers_Premium_economy = 0
98
- Jet_Airways_Business = 0
99
- Vistara_Premium_economy = 0
100
- Trujet = 0
101
-
102
- elif (airline=='Vistara'):
103
- Jet_Airways = 0
104
- IndiGo = 0
105
- Air_India = 0
106
- Multiple_carriers = 0
107
- SpiceJet = 0
108
  Vistara = 1
109
- GoAir = 0
110
- Multiple_carriers_Premium_economy = 0
111
- Jet_Airways_Business = 0
112
- Vistara_Premium_economy = 0
113
- Trujet = 0
114
-
115
- elif (airline=='GoAir'):
116
- Jet_Airways = 0
117
- IndiGo = 0
118
- Air_India = 0
119
- Multiple_carriers = 0
120
- SpiceJet = 0
121
- Vistara = 0
122
  GoAir = 1
123
- Multiple_carriers_Premium_economy = 0
124
- Jet_Airways_Business = 0
125
- Vistara_Premium_economy = 0
126
- Trujet = 0
127
-
128
- elif (airline=='Multiple carriers Premium economy'):
129
- Jet_Airways = 0
130
- IndiGo = 0
131
- Air_India = 0
132
- Multiple_carriers = 0
133
- SpiceJet = 0
134
- Vistara = 0
135
- GoAir = 0
136
  Multiple_carriers_Premium_economy = 1
137
- Jet_Airways_Business = 0
138
- Vistara_Premium_economy = 0
139
- Trujet = 0
140
-
141
- elif (airline=='Jet Airways Business'):
142
- Jet_Airways = 0
143
- IndiGo = 0
144
- Air_India = 0
145
- Multiple_carriers = 0
146
- SpiceJet = 0
147
- Vistara = 0
148
- GoAir = 0
149
- Multiple_carriers_Premium_economy = 0
150
  Jet_Airways_Business = 1
151
- Vistara_Premium_economy = 0
152
- Trujet = 0
153
-
154
- elif (airline=='Vistara Premium economy'):
155
- Jet_Airways = 0
156
- IndiGo = 0
157
- Air_India = 0
158
- Multiple_carriers = 0
159
- SpiceJet = 0
160
- Vistara = 0
161
- GoAir = 0
162
- Multiple_carriers_Premium_economy = 0
163
- Jet_Airways_Business = 0
164
  Vistara_Premium_economy = 1
165
- Trujet = 0
166
-
167
- elif (airline=='Trujet'):
168
- Jet_Airways = 0
169
- IndiGo = 0
170
- Air_India = 0
171
- Multiple_carriers = 0
172
- SpiceJet = 0
173
- Vistara = 0
174
- GoAir = 0
175
- Multiple_carriers_Premium_economy = 0
176
- Jet_Airways_Business = 0
177
- Vistara_Premium_economy = 0
178
  Trujet = 1
179
 
180
- else:
181
- Jet_Airways = 0
182
- IndiGo = 0
183
- Air_India = 0
184
- Multiple_carriers = 0
185
- SpiceJet = 0
186
- Vistara = 0
187
- GoAir = 0
188
- Multiple_carriers_Premium_economy = 0
189
- Jet_Airways_Business = 0
190
- Vistara_Premium_economy = 0
191
- Trujet = 0
192
-
193
- Source = request.form["Source"]
194
- if (Source == 'Delhi'):
195
- s_Delhi = 1
196
- s_Kolkata = 0
197
- s_Mumbai = 0
198
- s_Chennai = 0
199
 
200
- elif (Source == 'Kolkata'):
201
- s_Delhi = 0
 
202
  s_Kolkata = 1
203
- s_Mumbai = 0
204
- s_Chennai = 0
205
-
206
- elif (Source == 'Mumbai'):
207
- s_Delhi = 0
208
- s_Kolkata = 0
209
  s_Mumbai = 1
210
- s_Chennai = 0
211
-
212
- elif (Source == 'Chennai'):
213
- s_Delhi = 0
214
- s_Kolkata = 0
215
- s_Mumbai = 0
216
  s_Chennai = 1
217
 
218
- else:
219
- s_Delhi = 0
220
- s_Kolkata = 0
221
- s_Mumbai = 0
222
- s_Chennai = 0
223
-
224
 
225
- Destination = request.form["Destination"]
226
- if (Destination == 'Cochin'):
227
  d_Cochin = 1
228
- d_Delhi = 0
229
- d_Hyderabad = 0
230
- d_Kolkata = 0
231
-
232
- elif (Destination == 'Delhi'):
233
- d_Cochin = 0
234
  d_Delhi = 1
235
- d_Hyderabad = 0
236
- d_Kolkata = 0
237
-
238
- elif (Destination == 'Hyderabad'):
239
- d_Cochin = 0
240
- d_Delhi = 0
241
  d_Hyderabad = 1
242
- d_Kolkata = 0
243
-
244
- elif (Destination == 'Kolkata'):
245
- d_Cochin = 0
246
- d_Delhi = 0
247
- d_Hyderabad = 0
248
  d_Kolkata = 1
249
 
250
- else:#Banglore
251
- d_Cochin = 0
252
- d_Delhi = 0
253
- d_Hyderabad = 0
254
- d_Kolkata = 0
255
-
256
- output = model.predict([[Total_stops,
257
- Journey_day,
258
- Journey_month,
259
- Departure_hour,
260
- Departure_min,
261
- Arrival_hour,
262
- Arrival_min,
263
- dur_hour,
264
- dur_min,
265
- Air_India,
266
- GoAir,
267
- IndiGo,
268
- Jet_Airways,
269
- Jet_Airways_Business,
270
- Multiple_carriers,
271
- Multiple_carriers_Premium_economy,
272
- SpiceJet,
273
- Trujet,
274
- Vistara,
275
- Vistara_Premium_economy,
276
- s_Chennai,
277
- s_Delhi,
278
- s_Kolkata,
279
- s_Mumbai,
280
- d_Cochin,
281
- d_Delhi,
282
- d_Hyderabad,
283
- d_Kolkata]])
284
-
285
- output = round(output[0],2)
286
- return render_template('home.html',predictions='You will have to Pay approx Rs. {}'.format(output))
287
 
288
 
289
  if __name__ == '__main__':
290
- app.run(debug=True)
 
1
+ import streamlit as st
 
2
  import pickle
3
  import pandas as pd
4
 
5
+ model = pickle.load(open('flight_rf.pkl', 'rb'))
6
 
7
+ def main():
8
+ st.title("Flight Price Prediction App")
9
 
10
+ dep_time = st.text_input("Departure Time", "2023-01-01T12:00")
11
+ arrival_time = st.text_input("Arrival Time", "2023-01-01T14:00")
12
+
13
+ Total_stops = st.selectbox("Number of Stops", [0, 1, 2, 3, 4])
14
 
15
+ airline = st.selectbox("Select Airline", ["Jet Airways", "IndiGo", "Air India", "Multiple carriers", "SpiceJet", "Vistara", "GoAir", "Multiple carriers Premium economy", "Jet Airways Business", "Vistara Premium economy", "Trujet"])
 
 
 
 
16
 
17
+ Source = st.selectbox("Select Source", ["Delhi", "Kolkata", "Mumbai", "Chennai"])
 
18
 
19
+ Destination = st.selectbox("Select Destination", ["Cochin", "Delhi", "Hyderabad", "Kolkata", "Banglore"])
 
20
 
21
+ if st.button("Predict"):
22
+ Journey_day = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").day
23
+ Journey_month = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").month
24
 
25
+ Departure_hour = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").hour
26
+ Departure_min = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").minute
27
 
28
+ Arrival_hour = pd.to_datetime(arrival_time, format="%Y-%m-%dT%H:%M").hour
29
+ Arrival_min = pd.to_datetime(arrival_time, format="%Y-%m-%dT%H:%M").minute
30
 
31
+ Jet_Airways, IndiGo, Air_India, Multiple_carriers, SpiceJet, Vistara, GoAir, Multiple_carriers_Premium_economy, Jet_Airways_Business, Vistara_Premium_economy, Trujet = [0] * 11
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
+ if airline == 'Jet Airways':
34
+ Jet_Airways = 1
35
+ elif airline == 'IndiGo':
36
  IndiGo = 1
37
+ elif airline == 'Air India':
 
 
 
 
 
 
 
 
 
 
 
 
38
  Air_India = 1
39
+ elif airline == 'Multiple carriers':
 
 
 
 
 
 
 
 
 
 
 
 
40
  Multiple_carriers = 1
41
+ elif airline == 'SpiceJet':
 
 
 
 
 
 
 
 
 
 
 
 
42
  SpiceJet = 1
43
+ elif airline == 'Vistara':
 
 
 
 
 
 
 
 
 
 
 
 
44
  Vistara = 1
45
+ elif airline == 'GoAir':
 
 
 
 
 
 
 
 
 
 
 
 
46
  GoAir = 1
47
+ elif airline == 'Multiple carriers Premium economy':
 
 
 
 
 
 
 
 
 
 
 
 
48
  Multiple_carriers_Premium_economy = 1
49
+ elif airline == 'Jet Airways Business':
 
 
 
 
 
 
 
 
 
 
 
 
50
  Jet_Airways_Business = 1
51
+ elif airline == 'Vistara Premium economy':
 
 
 
 
 
 
 
 
 
 
 
 
52
  Vistara_Premium_economy = 1
53
+ elif airline == 'Trujet':
 
 
 
 
 
 
 
 
 
 
 
 
54
  Trujet = 1
55
 
56
+ s_Delhi, s_Kolkata, s_Mumbai, s_Chennai = 0, 0, 0, 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
 
58
+ if Source == 'Delhi':
59
+ s_Delhi = 1
60
+ elif Source == 'Kolkata':
61
  s_Kolkata = 1
62
+ elif Source == 'Mumbai':
 
 
 
 
 
63
  s_Mumbai = 1
64
+ elif Source == 'Chennai':
 
 
 
 
 
65
  s_Chennai = 1
66
 
67
+ d_Cochin, d_Delhi, d_Hyderabad, d_Kolkata = 0, 0, 0, 0
 
 
 
 
 
68
 
69
+ if Destination == 'Cochin':
 
70
  d_Cochin = 1
71
+ elif Destination == 'Delhi':
 
 
 
 
 
72
  d_Delhi = 1
73
+ elif Destination == 'Hyderabad':
 
 
 
 
 
74
  d_Hyderabad = 1
75
+ elif Destination == 'Kolkata':
 
 
 
 
 
76
  d_Kolkata = 1
77
 
78
+ dur_hour = abs(Arrival_hour - Departure_hour)
79
+ dur_min = abs(Arrival_min - Departure_min)
80
+
81
+ prediction = model.predict([[Total_stops,
82
+ Journey_day,
83
+ Journey_month,
84
+ Departure_hour,
85
+ Departure_min,
86
+ Arrival_hour,
87
+ Arrival_min,
88
+ dur_hour,
89
+ dur_min,
90
+ Air_India,
91
+ GoAir,
92
+ IndiGo,
93
+ Jet_Airways,
94
+ Jet_Airways_Business,
95
+ Multiple_carriers,
96
+ Multiple_carriers_Premium_economy,
97
+ SpiceJet,
98
+ Trujet,
99
+ Vistara,
100
+ Vistara_Premium_economy,
101
+ s_Chennai,
102
+ s_Delhi,
103
+ s_Kolkata,
104
+ s_Mumbai,
105
+ d_Cochin,
106
+ d_Delhi,
107
+ d_Hyderabad,
108
+ d_Kolkata]])
109
+
110
+ prediction = round(prediction[0], 2)
111
+ st.success('Predicted Price: Rs. {}'.format(prediction))
 
 
 
112
 
113
 
114
  if __name__ == '__main__':
115
+ main()