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()