File size: 4,573 Bytes
4804fa2
6048926
 
 
4804fa2
6048926
4804fa2
 
6048926
4804fa2
 
 
 
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
 
 
6048926
4804fa2
 
6048926
4804fa2
 
6048926
4804fa2
6048926
4804fa2
 
 
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
 
4804fa2
6048926
4804fa2
 
 
6048926
4804fa2
6048926
4804fa2
6048926
 
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
4804fa2
6048926
 
4804fa2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6048926
 
 
4804fa2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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()