Looge interaktiivseid veebirakendusi andmeteaduse ja masinõppeprojektide jaoks, kasutades ainult Pythonit – seda kõike tänu Streamlitile!

Streamlit on avatud lähtekoodiga Pythoni teek andmeteaduse ja masinõppeprojektide jaoks veebirakenduste loomiseks. See on mõeldud kasutamiseks andmeteadlastele ja masinõppeinseneridele, kellel puuduvad ulatuslikud esiotsa arendusoskused. Sellel on lihtne süntaks, mis võimaldab teil mõne koodireaga interaktiivseid veebirakendusi luua.

Komplekssete tehniliste üksikasjade koondamine kasutajasõbraliku liidese taha võimaldab Streamlit kasutajatel keskenduda oma andmete, prototüüpide või mudelite reaalajas uurimisele ja esitlemisele. See muudab selle väärtuslikuks tööriistaks kiireks arusaamade jagamiseks.

Streamlit teegi installimine

Looge uus virtuaalne keskkond. See tagab, et pärast installimist pole paketiversiooni konflikti Vooluvalgus. Siis installimiseks kasutage pipi Lihtsustage, käivitades järgmise käsu:

pip install streamlit

Seejärel kontrollige, kas install on õigesti installitud.

streamlit --version

Kui installimine õnnestub, kuvatakse installitud Streamliti versioon.

Lihtsa andmete puhastamise ja analüüsimise rakenduse loomine

Loote lihtsa veebirakenduse, et saada teada, kuidas Streamlit töötab ja selle funktsioone. See rakendus suudab üleslaaditud andmekogumit puhastada, andmeanalüüsi teha ja andmeid lõpuks visualiseerida.

Täielik lähtekood on saadaval a GitHubi hoidla.

Vajalike teekide installimine ja importimine

Alustage Pandase, Matplotlibi ja Seaborni installimisega samasse virtuaalsesse keskkonda, mille installisite Streamliti järgmise käsuga:

pip install pandas matplotlib seaborn

Seejärel looge uus Pythoni skript ja importige kõik installitud teegid.

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

See võimaldab teil oma koodis kasutada nende funktsioone.

Andmestiku üleslaadimine ja selle sisu kuvamine

Seejärel määrake funktsioon, mis loeb üleslaaditud andmekogumit. Kui lugemisoperatsioon õnnestub, tagastab see DataFrame'i. Kui ei, kuvatakse külgribal veateade. Viga ilmneb siis, kui fail ei ole kehtiv CSV-fail.

defload_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.')
returnNone

Määrake teine ​​funktsioon, mis kasutab Steamlitit DataFrame'i tabelivormingus kuvamiseks. See teeb seda ainult siis, kui kasutaja kontrollib Näita töötlemata andmeid märkeruut. See kasutab Streamliti märkeruut, andmeraam, ja alampäis funktsioonid.

defexplore_raw_data(df):
st.subheader('Raw Data')
if st.checkbox('Show Raw Data'):
st.dataframe(df)

Olles loonud DataFrame'i ja näidanud algandmeid, peate nüüd andmed puhastama, analüüsima ja lõpuks visualiseerima.

Andmete puhastamine

Alustuseks määrake funktsioon, mis teostab andmete puhastamise. See funktsioon käsitleb DataFrame'i puuduvaid väärtusi ja dubleerivaid ridu. Seejärel näidatakse puhastatud DataFrame'i kasutajale st.dataframe funktsiooni, kui nad kontrollivad Näita puhastatud andmeid märkeruut.

defdata_cleaning(df):
st.header('Data Cleaning')

# Remove Missing Values
st.subheader('Handling Missing Values')
df.dropna(inplace=True)
st.write("Missing values removed from the dataset.")

# Remove Duplicate Rows
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)

Funktsioon näitab ka eemaldatud topeltridade arvu.

Andmeanalüüsi teostamine

Määratlege andmeanalüüsi funktsioon. See funktsioon näitab DataFrame'i kirjeldavat statistikat ja korrelatsioonimaatriksi soojuskaarti. See kasutab ära st.pyplot funktsioon soojuskaardi kuvamiseks kasutajaliideses.

defdata_analysis(df):
st.header('Data Analysis')

# Descriptive Statistics
st.subheader('Descriptive Statistics')
st.write(df.describe())

# Correlation Matrix
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)

Andmeanalüüsi tegemiseks saate ülaltoodud funktsiooni muuta. See aitab teil oma andmetest rohkem teavet saada.

Andmete visualiseerimise teostamine

Andmete visualiseerimine on rakenduse üks olulisemaid funktsioone. Seda seetõttu, et see annab visuaalse ülevaate andmetest inimsõbralikul viisil. Seetõttu peaks see funktsioon võimaldama kasutajatel graafikute välimust muuta.

Selle saavutamiseks looge funktsioon, mis võimaldab kasutajatel valida veeru, määrata prügikastide arvu ja valida histogrammi värvi. Seejärel genereerib see histogrammi ja kastigraafiku ning kuvab need kasutades st.pyplot funktsiooni.

defdata_visualization(df):
st.header('Data Visualization')

# Histogram
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)

# Box Plot
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)

Nüüdseks on teil kõik rakenduse põhifunktsioonid.

Kasutajate tagasiside kogumine

Mõnikord ei pruugi funktsioon ootuspäraselt töötada. Seejärel on teil vaja viisi, kuidas kasutajad saaksid oma tagasisidet esitada. Üks võimalus on see, et kasutajad jõuavad teieni meili teel. Streamlit pakub kasutajate tagasiside kogumiseks liidest, kuid ei paku sisseehitatud funktsioone otse meilide saatmiseks. Siiski saate oma rakendusest meilide saatmiseks integreerida väliseid teeke või teenuseid.

Kasutaja tagasiside kogumiseks määrake funktsioon kasutajale vormi esitamiseks.

deffeedback_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:
# Here, you can send the feedback to the developer's
# email using external services/APIs
st.success("Thank you for your feedback!")

See vorm kogub kasutaja meilid ja tagasiside ning saadab selle teile meili teel.

Programmi voo juhtimine ja rakenduse käitamine

Lõpuks vajate põhifunktsiooni, mis ühendab kõik need funktsioonid ja juhib programmi voogu. See funktsioon tagab ka, et kasutajad nõustuvad teie andmete privaatsustingimustega enne, kui rakendus nende üleslaaditud andmekogumit töötleb.

defmain():
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 isnotNoneand agree_terms:
df = load_data(uploaded_file)

if df isnotNone:
explore_raw_data(df)
data_cleaning(df)
data_analysis(df)
data_visualization(df)

feedback_form()

Saate oma programmi käivitada iseseisvalt või importida selle moodulina kasutades if __name__ == '__main__': konstruktsiooni.

if __name__ == '__main__':
main()

Liikuge terminali ja navigeerige teele, millel teie projekt asub. Seejärel käivitage rakenduse käivitamiseks järgmine käsk:

streamlit run main.py

Asenda main.py teie skripti tegeliku nimega. Pärast käsu käivitamist loob Streamlit kohaliku URL-i ja võrgu URL-i. Saate oma rakendusega suhtlemiseks kasutada mõnda neist URL-idest.

Programmi väljund on järgmine:

Andmeteaduse jaoks interaktiivsete veebirakenduste loomine pole kunagi olnud lihtsam. Rakendusele kasutajaliidese loomiseks ei ole vaja täiustatud veebiarendusoskusi.

Kas peaksite ikkagi veebiarendust õppima?

See sõltub teie konkreetsetest eesmärkidest. Kui eeldate keerukate ja funktsioonirikaste veebirakenduste ehitamist, mis nõuavad ulatuslikku kasutajat liidese disain ja täiustatud funktsionaalsused, siis veebiarendustehnoloogiate õppimine võiks olla kasulik. Selle põhjuseks on asjaolu, et rakenduses Streamlit on teil piiratud kontroll oma rakenduse välimuse ja käitumise täpse kohandamise üle.