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