|
import streamlit as st |
|
import pickle |
|
import pandas as pd |
|
|
|
model = pickle.load(open('flight_rf.pkl', 'rb')) |
|
|
|
def main(): |
|
st.title("Flight Price Prediction App") |
|
|
|
dep_time = st.text_input("Departure Time", "2023-01-01T12:00") |
|
arrival_time = st.text_input("Arrival Time", "2023-01-01T14:00") |
|
|
|
Total_stops = st.selectbox("Number of Stops", [0, 1, 2, 3, 4]) |
|
|
|
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"]) |
|
|
|
Source = st.selectbox("Select Source", ["Delhi", "Kolkata", "Mumbai", "Chennai"]) |
|
|
|
Destination = st.selectbox("Select Destination", ["Cochin", "Delhi", "Hyderabad", "Kolkata", "Banglore"]) |
|
|
|
if st.button("Predict"): |
|
Journey_day = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").day |
|
Journey_month = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").month |
|
|
|
Departure_hour = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").hour |
|
Departure_min = pd.to_datetime(dep_time, format="%Y-%m-%dT%H:%M").minute |
|
|
|
Arrival_hour = pd.to_datetime(arrival_time, format="%Y-%m-%dT%H:%M").hour |
|
Arrival_min = pd.to_datetime(arrival_time, format="%Y-%m-%dT%H:%M").minute |
|
|
|
Jet_Airways, IndiGo, Air_India, Multiple_carriers, SpiceJet, Vistara, GoAir, Multiple_carriers_Premium_economy, Jet_Airways_Business, Vistara_Premium_economy, Trujet = [0] * 11 |
|
|
|
if airline == 'Jet Airways': |
|
Jet_Airways = 1 |
|
elif airline == 'IndiGo': |
|
IndiGo = 1 |
|
elif airline == 'Air India': |
|
Air_India = 1 |
|
elif airline == 'Multiple carriers': |
|
Multiple_carriers = 1 |
|
elif airline == 'SpiceJet': |
|
SpiceJet = 1 |
|
elif airline == 'Vistara': |
|
Vistara = 1 |
|
elif airline == 'GoAir': |
|
GoAir = 1 |
|
elif airline == 'Multiple carriers Premium economy': |
|
Multiple_carriers_Premium_economy = 1 |
|
elif airline == 'Jet Airways Business': |
|
Jet_Airways_Business = 1 |
|
elif airline == 'Vistara Premium economy': |
|
Vistara_Premium_economy = 1 |
|
elif airline == 'Trujet': |
|
Trujet = 1 |
|
|
|
s_Delhi, s_Kolkata, s_Mumbai, s_Chennai = 0, 0, 0, 0 |
|
|
|
if Source == 'Delhi': |
|
s_Delhi = 1 |
|
elif Source == 'Kolkata': |
|
s_Kolkata = 1 |
|
elif Source == 'Mumbai': |
|
s_Mumbai = 1 |
|
elif Source == 'Chennai': |
|
s_Chennai = 1 |
|
|
|
d_Cochin, d_Delhi, d_Hyderabad, d_Kolkata = 0, 0, 0, 0 |
|
|
|
if Destination == 'Cochin': |
|
d_Cochin = 1 |
|
elif Destination == 'Delhi': |
|
d_Delhi = 1 |
|
elif Destination == 'Hyderabad': |
|
d_Hyderabad = 1 |
|
elif Destination == 'Kolkata': |
|
d_Kolkata = 1 |
|
|
|
dur_hour = abs(Arrival_hour - Departure_hour) |
|
dur_min = abs(Arrival_min - Departure_min) |
|
|
|
prediction = model.predict([[Total_stops, |
|
Journey_day, |
|
Journey_month, |
|
Departure_hour, |
|
Departure_min, |
|
Arrival_hour, |
|
Arrival_min, |
|
dur_hour, |
|
dur_min, |
|
Air_India, |
|
GoAir, |
|
IndiGo, |
|
Jet_Airways, |
|
Jet_Airways_Business, |
|
Multiple_carriers, |
|
Multiple_carriers_Premium_economy, |
|
SpiceJet, |
|
Trujet, |
|
Vistara, |
|
Vistara_Premium_economy, |
|
s_Chennai, |
|
s_Delhi, |
|
s_Kolkata, |
|
s_Mumbai, |
|
d_Cochin, |
|
d_Delhi, |
|
d_Hyderabad, |
|
d_Kolkata]]) |
|
|
|
prediction = round(prediction[0], 2) |
|
st.success('Predicted Price: Rs. {}'.format(prediction)) |
|
|
|
|
|
if __name__ == '__main__': |
|
main() |
|
|