Spaces:
Configuration error
Configuration error
| import streamlit as st | |
| import pandas as pd | |
| import seaborn as sns | |
| import matplotlib.pyplot as plt | |
| def app(): | |
| st.header('Model Deployment') | |
| st.write(""" | |
| Created by Maria Melisa Gunawan""") | |
| st.subheader("""Airline Passenger Satisfaction Exploratory Data Analysis | |
| """) | |
| def fetch_data(): | |
| df = pd.read_csv('airline_passenger_satisfaction.csv') | |
| return df | |
| df = fetch_data() | |
| df.drop_duplicates(inplace=True) | |
| st.write(df) | |
| fig, ax = plt.subplots() | |
| df['Gender'].value_counts().plot(kind='bar', ax=ax) | |
| plt.tight_layout() | |
| st.header('Distribusi Jenis Kelamin Pelanggan') | |
| st.pyplot(fig) | |
| st.write("Berdasarkan jenis kelamin, dengan angka 0 menunjukkan Female dan angka 1 menunjukkan Male, didapatkan bahwa gender Female dan Male memiliki angka yang hampir sama yaitu Female 50.7% dan Male 49.3%") | |
| for feature in ['inflight_entertainment', 'seat_comfort', 'onboard_service', | |
| 'leg_room_service', 'inflight_wifi_service', 'baggage_handling', | |
| 'inflight_service', 'checkin_service', 'online_boarding', | |
| 'cleanliness']: | |
| fig, ax = plt.subplots() | |
| df[feature].value_counts().plot(kind='bar', ax=ax) | |
| plt.tight_layout() | |
| st.header(f'{feature.capitalize()} Counts') | |
| st.pyplot(fig) | |
| st.write(""" Berdasarkan data diatas, dapat disimpulkan bahwa rata-rata service yang diberikan memiliki tingkat kepuasan yang cukup tinggi | |
| """) | |
| fig, ax = plt.subplots() | |
| df['customer_type'].value_counts().plot(kind='bar', ax=ax) | |
| plt.tight_layout() | |
| st.header('Jumlah Pelanggan Berdasarkan Tipe Pelanggan') | |
| st.pyplot(fig) | |
| st.write("Loyal customer jauh lebih tinggi dibandingkan dengan disloyal customer, yang berarti banyak pelanggan yang loyal.") | |
| fig, ax = plt.subplots() | |
| df['age'].plot(kind='hist', ax=ax, bins=20, edgecolor='black', alpha=0.7) | |
| plt.tight_layout() | |
| st.header('Distribusi Usia Pelanggan') | |
| st.pyplot(fig) | |
| st.write("Mayoritas pelanggan berumur dari 10 hingga 85 tahun dan pelanggan terbanyak berada di usia kisaran 20 hingga 60 tahun dengan pelanggan yang paling banyak pada usia 40 tahun.") | |
| fig, ax = plt.subplots() | |
| df['type_of_travel'].value_counts().plot(kind='bar', ax=ax) | |
| plt.tight_layout() | |
| st.header('Jumlah Pelanggan Berdasarkan Jenis Perjalanan') | |
| st.pyplot(fig) | |
| st.write("Mayoritas pelanggan melakukan perjalanan business travel dibandingkan dengan personal travel.") | |
| fig, ax = plt.subplots() | |
| df['customer_class'].value_counts().plot(kind='bar', ax=ax) | |
| plt.tight_layout() | |
| st.header('Jumlah Pelanggan Berdasarkan Kelas Perjalanan') | |
| st.pyplot(fig) | |
| st.write("Mayoritas pelanggan berada di kelas business diikuti dengan kelas eco dan paling sedikit pelanggan yang menaiki kelas eco plus.") | |
| fig, ax = plt.subplots() | |
| df['flight_distance'].plot(kind='hist', ax=ax, bins=20, edgecolor='black', alpha=0.7) | |
| plt.tight_layout() | |
| st.header('Distribusi Jarak Penerbangan') | |
| st.pyplot(fig) | |
| st.write("Mayoritas pelanggan berumur dari 10 hingga 85 tahun dan pelanggan terbanyak berada di usia kisaran 20 hingga 60 tahun dengan pelanggan yang paling banyak pada usia 40 tahun.") | |
| st.header('KDE of Flight Distance by Satisfaction') | |
| fig = sns.displot(data=df, x="flight_distance", kind='kde', hue='satisfaction') | |
| st.pyplot(fig) | |
| st.write("Lebih banyak orang yang merasa puas pada perjalanan yang jauh daripada perjalanan yang pendek.") | |
| fig, ax = plt.subplots() | |
| df['satisfaction'].value_counts().plot(kind='bar', ax=ax) | |
| plt.tight_layout() | |
| st.header('Jumlah Pelanggan Berdasarkan Kepuasan') | |
| st.pyplot(fig) | |
| st.write("Lebih banyak pelanggan yang merasa netral/tidak puas daripada yang merasa puas.") | |
| st.header('KDE of Age by Satisfaction') | |
| fig = sns.displot(data=df, x="age", kind='kde', hue='satisfaction') | |
| st.pyplot(fig) | |
| st.write("Orang dengan umur 40 keatas atau yang lebih tua cenderung lebih puas dari umur yang masih muda.") | |
| st.header('Skewness of Flight Distance') | |
| skew = round(df["flight_distance"].skew(), 2) | |
| st.write("Skewness:", skew) | |
| fig, ax = plt.subplots() | |
| sns.histplot(df["flight_distance"], bins=60, ax=ax) | |
| plt.tight_layout() | |
| st.pyplot(fig) | |
| st.write(" Dari gambar diatas menunjukkan flight distance memiliki skewness positif.") | |
| st.header('Box Plot of Flight Distance') | |
| plt.figure(figsize=(8, 6)) | |
| sns.boxplot(x=df["flight_distance"]) | |
| plt.title('Box Plot Jarak Penerbangan') | |
| plt.xlabel('Jarak Penerbangan') | |
| plt.grid(True) | |
| st.pyplot(plt) | |
| st.write("Tidak ada outliers yang besar pada flight distance.") | |
| if __name__ == '__main__': | |
| app() | |