Vytvárajte interaktívne webové aplikácie pre dátovú vedu a projekty strojového učenia iba pomocou Pythonu, a to všetko vďaka Streamlit!

Streamlit je open-source Python knižnica na vytváranie webových aplikácií pre dátovú vedu a projekty strojového učenia. Je navrhnutý tak, aby ho mohli používať dátoví vedci a inžinieri strojového učenia, ktorí nemajú rozsiahle zručnosti v oblasti front-endového vývoja. Má jednoduchú syntax, ktorá vám umožňuje vytvárať interaktívne webové aplikácie s niekoľkými riadkami kódu.

Zahrnutím zložitých technických detailov do užívateľsky prívetivého rozhrania umožňuje Streamlit používateľom zamerať sa na skúmanie a prezentáciu svojich údajov, prototypov alebo modelov v reálnom čase. Vďaka tomu je cenným nástrojom na rýchle zdieľanie poznatkov.

Inštalácia knižnice Streamlit

Vytvorte nové virtuálne prostredie. Tým sa zabezpečí, že po inštalácii nedôjde ku konfliktu verzií balíka Streamlit. Potom na inštaláciu použite pip Streamlit spustením nasledujúceho príkazu:

pip install streamlit
instagram viewer

Potom skontrolujte, či je inštalácia správne nainštalovaná.

streamlit --version

Ak je inštalácia úspešná, zobrazí sa nainštalovaná verzia Streamlit.

Vytváranie jednoduchej aplikácie na čistenie a analýzu údajov

Vytvoríte si jednoduchú webovú aplikáciu, v ktorej sa dozviete, ako Streamlit funguje a aké sú jeho funkcie. Táto aplikácia bude schopná vyčistiť nahraný súbor údajov, vykonať analýzu údajov a nakoniec údaje vizualizovať.

Úplný zdrojový kód je dostupný v a úložisko GitHub.

Inštalácia a import potrebných knižníc

Začnite inštaláciou Pandas, Matplotlib a Seaborn v rovnakom virtuálnom prostredí, v ktorom ste nainštalovali Streamlit pomocou nasledujúceho príkazu:

pip install pandas matplotlib seaborn

Potom vytvorte nový skript Python a importujte všetky nainštalované knižnice.

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

To vám umožní využívať ich funkcie vo vašom kóde.

Nahranie množiny údajov a zobrazenie jej obsahu

Potom definujte funkciu, ktorá bude čítať nahraný súbor údajov. Potom vráti DataFrame, ak je operácia čítania úspešná. Ak nie, na bočnom paneli sa zobrazí chybové hlásenie. Chyba nastane, keď súbor nie je platným súborom CSV.

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

Definujte ďalšiu funkciu, ktorá bude používať Steamlit na zobrazenie DataFrame v tabuľkovom formáte. Urobí to iba vtedy, keď používateľ skontroluje Zobraziť nespracované údaje začiarkavacie políčko. Bude využívať technológiu Streamlit začiarkavacie políčko, dátový rámec, a podnadpis funkcie.

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

Po vytvorení DataFrame a zobrazení nespracovaných údajov teraz musíte údaje vyčistiť, analyzovať a nakoniec vizualizovať.

Vykonávanie čistenia dát

Začnite definovaním funkcie, ktorá bude vykonávať čistenie dát. Táto funkcia spracuje chýbajúce hodnoty v DataFrame a duplicitné riadky. Vyčistený DataFrame sa potom zobrazí používateľovi pomocou st.dataframe funkciu, ak skontrolujú Zobraziť vyčistené údaje začiarkavacie políčko.

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)

Funkcia tiež zobrazuje počet odstránených duplicitných riadkov.

Vykonávanie analýzy údajov

Definujte funkciu analýzy údajov. Táto funkcia zobrazí popisnú štatistiku DataFrame a zobrazí teplotnú mapu korelačnej matice. Bude využívať st.pyplot funkcia na zobrazenie tepelnej mapy na používateľskom rozhraní.

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)

Vyššie uvedenú funkciu môžete upraviť, aby ste vykonali ďalšiu analýzu údajov. Pomôže vám to získať z vašich údajov viac informácií.

Vykonávanie vizualizácie údajov

Vizualizácia dát je jednou z kľúčových funkcií aplikácie. Je to preto, že umožňuje nahliadnuť do údajov vizuálne spôsobom priateľským k človeku. Táto funkcionalita by preto mala užívateľom umožniť meniť vzhľad pozemkov.

Aby ste to dosiahli, vytvorte funkciu, ktorá používateľom umožní vybrať stĺpec, nastaviť počet zásobníkov a vybrať farbu pre histogram. Potom vygeneruje histogram a rámček a zobrazí ich pomocou st.pyplot funkciu.

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)

Teraz máte všetky základné funkcie aplikácie.

Zhromažďovanie spätnej väzby od používateľov

Niekedy funkcia nemusí fungovať podľa očakávania. Potom potrebujete spôsob, ako môžu používatelia odoslať svoju spätnú väzbu. Jedným zo spôsobov je, že vás používatelia kontaktujú prostredníctvom e-mailu. Streamlit poskytuje rozhranie na zhromažďovanie spätnej väzby od používateľov, ale neposkytuje vstavanú funkciu na priame odosielanie e-mailov. Môžete však integrovať externé knižnice alebo služby na odosielanie e-mailov z vašej aplikácie.

Ak chcete získať spätnú väzbu od používateľa, definujte funkciu, ktorá používateľovi poskytne formulár.

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!")

Tento formulár zhromaždí e-mail a spätnú väzbu používateľa a pošle vám ich prostredníctvom e-mailu.

Ovládanie toku vášho programu a spustenie aplikácie

Nakoniec potrebujete hlavnú funkciu, ktorá spojí všetky tieto funkcie a bude riadiť tok programu. Táto funkcia tiež zabezpečí, aby používatelia súhlasili s vašimi podmienkami ochrany osobných údajov predtým, ako aplikácia spracuje ich nahraný súbor údajov.

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

Svoj program môžete spustiť samostatne alebo ho importovať ako modul pomocou konštrukcie if __name__ == '__main__':.

if __name__ == '__main__':
main()

Pokračujte k terminálu a prejdite na cestu, v ktorej sa nachádza váš projekt. Potom spustite aplikáciu nasledujúcim príkazom:

streamlit run main.py

Nahradiť main.py so skutočným názvom vášho skriptu. Po spustení príkazu Streamlit vygeneruje lokálnu URL a sieťovú URL. Na interakciu s aplikáciou môžete použiť ktorúkoľvek z týchto adries URL.

Výstup programu je nasledovný:

Vytváranie interaktívnych webových aplikácií pre vedu o údajoch nebolo nikdy jednoduchšie. Na vytvorenie používateľského rozhrania pre vašu aplikáciu nepotrebujete pokročilé zručnosti v oblasti vývoja webu.

Mali by ste sa stále učiť vývoj webu?

Závisí to od vašich konkrétnych cieľov. Ak predpokladáte vytváranie zložitých webových aplikácií s bohatými funkciami, ktoré vyžadujú rozsiahleho používateľa dizajn rozhrania a pokročilé funkcie, potom by sa mohli učiť technológie vývoja webu prospešné. Je to preto, že v Streamlit máte obmedzenú kontrolu nad jemným prispôsobením vzhľadu a správania vašej aplikácie.