flight / app.py
viruthik's picture
Update app.py
4804fa2
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()