Memulai Streamlit: Panduan Praktis
Table of content:
- Menginstal Perpustakaan Streamlit
- Membangun Aplikasi Pembersihan dan Analisis Data Sederhana
- Memasang dan Mengimpor Perpustakaan yang Diperlukan
- Mengunggah Kumpulan Data dan Menampilkan Isinya
- Melakukan Pembersihan Data
- Melakukan Analisis Data
- Melakukan Visualisasi Data
- Mengumpulkan Masukan Pengguna
- Mengontrol Aliran Program Anda dan Menjalankan Aplikasi
- Haruskah Anda Masih Belajar Pengembangan Web?
Streamlit adalah pustaka Python sumber terbuka untuk membuat aplikasi web untuk proyek ilmu data dan pembelajaran mesin. Ini dirancang untuk digunakan oleh ilmuwan data dan insinyur pembelajaran mesin yang tidak memiliki keterampilan pengembangan front-end yang luas. Ini memiliki sintaks sederhana yang memungkinkan Anda membuat aplikasi web interaktif dengan beberapa baris kode.
Dengan merangkum detail teknis yang kompleks di balik antarmuka yang ramah pengguna, Streamlit memungkinkan pengguna untuk fokus mengeksplorasi dan menyajikan data, prototipe, atau model mereka secara real-time. Hal ini menjadikannya alat yang berharga untuk berbagi wawasan dengan cepat.
Menginstal Perpustakaan Streamlit
Buat lingkungan virtual baru. Ini akan memastikan tidak ada konflik versi paket setelah instalasi Lampu aliran. Kemudian gunakan pip untuk menginstal Streamlit dengan menjalankan perintah berikut:
pip install streamlit
Kemudian, verifikasi instalasi telah diinstal dengan benar.
streamlit --version
Jika instalasi berhasil, versi Streamlit yang diinstal akan ditampilkan.
Membangun Aplikasi Pembersihan dan Analisis Data Sederhana
Anda akan membuat aplikasi web sederhana untuk mempelajari cara kerja Streamlit dan fitur-fiturnya. Aplikasi ini akan dapat membersihkan dataset yang diunggah, melakukan analisis data, dan terakhir memvisualisasikan data.
Memasang dan Mengimpor Perpustakaan yang Diperlukan
Mulailah dengan menginstal Pandas, Matplotlib, dan Seaborn di lingkungan virtual yang sama dengan tempat Anda menginstal Streamlit menggunakan perintah berikut:
pip install pandas matplotlib seaborn
Kemudian buat skrip Python baru dan impor semua perpustakaan yang diinstal.
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Ini akan memungkinkan Anda untuk menggunakan fungsinya dalam kode Anda.
Mengunggah Kumpulan Data dan Menampilkan Isinya
Kemudian tentukan fungsi yang akan membaca kumpulan data yang diunggah. Ini kemudian akan mengembalikan DataFrame jika operasi baca berhasil. Jika tidak, maka akan muncul pesan kesalahan di sidebar. Kesalahan terjadi jika file tersebut bukan file CSV yang valid.
def load_data(uploaded_file):
try:
df = pd.read_csv(uploaded_file)
return df
except Exception as e:
st.sidebar.error('Error occurred while loading the file.'
' Please make sure it is a valid CSV file.')
return None
Tentukan fungsi lain yang akan menggunakan Steamlit untuk menampilkan DataFrame dalam format tabel. Ini hanya akan melakukan ini ketika pengguna memeriksa Tampilkan Data Mentah kotak centang. Ini akan memanfaatkan Streamlit kotak centang, kerangka data, Dan subjudul fungsi.
def explore_raw_data(df):
st.subheader('Raw Data')
if st.checkbox('Show Raw Data'):
st.dataframe(df)
Setelah membuat DataFrame dan menampilkan data mentah, Anda sekarang perlu membersihkan data, menganalisisnya, dan terakhir memvisualisasikannya.
Melakukan Pembersihan Data
Mulailah dengan mendefinisikan fungsi yang akan melakukan pembersihan data. Fungsi ini akan menangani nilai yang hilang di DataFrame dan baris duplikat. DataFrame yang telah dibersihkan kemudian ditampilkan kepada pengguna yang menggunakan st.dataframe berfungsi jika mereka memeriksa Tampilkan Data yang Dibersihkan kotak centang.
def data_cleaning(df):
st.header('Data Cleaning')
st.subheader('Handling Missing Values')
df.dropna(inplace=True)
st.write("Missing values removed from the dataset.")
st.subheader('Removing Duplicate Rows')
initial_rows = len(df)
df.drop_duplicates(inplace=True)
final_rows = len(df)
st.write(f"Removed {initial_rows - final_rows} duplicate rows.")
if st.checkbox('Show Cleaned Data'):
st.dataframe(df)
Fungsi ini juga menunjukkan jumlah baris duplikat yang dihapus.
Melakukan Analisis Data
Tentukan fungsi analisis data. Fungsi ini akan menampilkan statistik deskriptif DataFrame dan menampilkan peta panas matriks korelasi. Ini akan memanfaatkan st.pyplot berfungsi untuk menampilkan peta panas pada antarmuka pengguna.
def data_analysis(df):
st.header('Data Analysis')
st.subheader('Descriptive Statistics')
st.write(df.describe())
st.subheader('Correlation Matrix')
corr_matrix = df.corr()
fig, ax = plt.subplots(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm',
center=0, ax=ax)
st.pyplot(fig)
Anda dapat memodifikasi fungsi di atas untuk melakukan lebih banyak analisis data. Ini akan membantu Anda memperoleh lebih banyak wawasan dari data Anda.
Melakukan Visualisasi Data
Visualisasi data adalah salah satu fungsi penting aplikasi. Hal ini karena memberikan wawasan data secara visual dengan cara yang ramah manusia. Oleh karena itu, fungsi ini memungkinkan pengguna untuk mengubah tampilan plot.
Untuk mencapai hal ini, buatlah fungsi yang memungkinkan pengguna memilih kolom, mengatur jumlah nampan, dan memilih warna untuk histogram. Ini kemudian akan menghasilkan histogram dan plot kotak dan menampilkannya menggunakan st.pyplot fungsi.
def data_visualization(df):
st.header('Data Visualization')
st.subheader('Histogram')
selected_column = st.selectbox("Select a column to visualize:",
df.columns)
num_bins = st.slider("Select number of bins:",
min_value=5, max_value=50, value=20)
plot_color = st.color_picker("Select histogram color", "#1f77b4")
plt.figure(figsize=(8, 6))
plt.hist(df[selected_column], bins=num_bins, edgecolor='black',
color=plot_color, alpha=0.7)
plt.xlabel(selected_column)
plt.ylabel('Frequency')
st.pyplot(plt)
st.subheader('Box Plot')
selected_column = st.selectbox("Select a column for box plot:",
df.columns)
plot_color = st.color_picker("Select box plot color", "#1f77b4")
plt.figure(figsize=(8, 6))
sns.boxplot(x=df[selected_column], color=plot_color)
plt.xlabel(selected_column)
plt.ylabel('Value')
st.pyplot(plt)
Sekarang Anda sudah memiliki semua fungsi inti aplikasi.
Mengumpulkan Masukan Pengguna
Terkadang, suatu fungsi mungkin tidak berfungsi sebagaimana mestinya. Anda kemudian memerlukan cara bagi pengguna untuk mengirimkan masukan mereka. Salah satu caranya adalah dengan pengguna menghubungi Anda melalui email. Streamlit menyediakan antarmuka untuk mengumpulkan umpan balik pengguna tetapi tidak menyediakan fungsionalitas bawaan untuk mengirim email secara langsung. Namun, Anda dapat mengintegrasikan perpustakaan atau layanan eksternal untuk mengirim email dari aplikasi Anda.
Untuk mengumpulkan umpan balik pengguna, tentukan fungsi untuk menyajikan formulir kepada pengguna.
def feedback_form():
st.header('Feedback')
with st.form('Feedback Form'):
email = st.text_input("Your Email")
feedback = st.text_area("Feedback")
submitted = st.form_submit_button("Submit Feedback")
if submitted:
st.success("Thank you for your feedback!")
Formulir ini akan mengumpulkan email dan umpan balik pengguna dan mengirimkannya kepada Anda melalui email.
Mengontrol Aliran Program Anda dan Menjalankan Aplikasi
Terakhir, Anda memerlukan fungsi utama yang akan menyatukan semua fungsi ini dan mengontrol alur program. Fungsi ini juga akan memastikan pengguna menyetujui persyaratan privasi data Anda sebelum aplikasi memproses kumpulan data yang mereka unggah.
def main():
st.title('Data Cleaning, Analysis, and Visualization App') st.sidebar.header('Upload Dataset')
uploaded_file = st.sidebar.file_uploader('Upload a CSV file', type=['csv'])
agree_terms = st.sidebar.checkbox("I agree to the terms")
if uploaded_file is not None and agree_terms:
df = load_data(uploaded_file)
if df is not None:
explore_raw_data(df)
data_cleaning(df)
data_analysis(df)
data_visualization(df)
feedback_form()
Anda dapat menjalankan program Anda secara mandiri atau mengimpornya sebagai modul menggunakan konstruksi if __name__ == ‘__main__’:.
if __name__ == '__main__':
main()
Lanjutkan ke terminal dan navigasikan ke jalur tempat proyek Anda berada. Kemudian jalankan perintah berikut untuk memulai aplikasi:
streamlit run main.py
Mengganti main.py dengan nama sebenarnya skrip Anda. Setelah menjalankan perintah Streamlit akan menghasilkan URL Lokal dan URL Jaringan. Anda dapat menggunakan salah satu URL berikut untuk berinteraksi dengan aplikasi Anda.
Output dari program ini adalah sebagai berikut:
Membuat aplikasi web interaktif untuk ilmu data tidak pernah semudah ini. Anda tidak memerlukan keahlian pengembangan web tingkat lanjut untuk membuat antarmuka pengguna untuk aplikasi Anda.
Haruskah Anda Masih Belajar Pengembangan Web?
Itu tergantung pada tujuan spesifik Anda. Jika Anda mengantisipasi pembuatan aplikasi web yang kompleks dan kaya fitur yang memerlukan desain antarmuka pengguna yang ekstensif dan fungsionalitas tingkat lanjut, maka mempelajari teknologi pengembangan web dapat bermanfaat. Hal ini karena di Streamlit Anda memiliki kontrol terbatas atas penyesuaian menyeluruh pada tampilan dan perilaku aplikasi Anda.