Izveidojiet interaktīvas tīmekļa lietojumprogrammas datu zinātnes un mašīnmācīšanās projektiem, izmantojot tikai Python, pateicoties Streamlit!

Streamlit ir atvērtā koda Python bibliotēka, kas paredzēta tīmekļa lietojumprogrammu izveidei datu zinātnes un mašīnmācīšanās projektiem. Tas ir paredzēts lietošanai datu zinātniekiem un mašīnmācīšanās inženieriem, kuriem nav plašu priekšgala izstrādes prasmju. Tam ir vienkārša sintakse, kas ļauj izveidot interaktīvas tīmekļa lietotnes ar dažām koda rindām.

Lietotājam draudzīgā interfeisā iekapsulējot sarežģītas tehniskas detaļas, Streamlit ļauj lietotājiem koncentrēties uz savu datu, prototipu vai modeļu izpēti un prezentēšanu reāllaikā. Tas padara to par vērtīgu rīku ātrai ieskatu kopīgošanai.

Streamlit bibliotēkas instalēšana

Izveidojiet jaunu virtuālo vidi. Tas nodrošinās, ka pēc instalēšanas nav pakotnes versiju konflikta Plūsmīgs. Tad instalēšanai izmantojiet pip Racionalizējiet, izpildot šādu komandu:

pip install streamlit

Pēc tam pārbaudiet, vai instalācija ir instalēta pareizi.

instagram viewer
streamlit --version

Ja instalēšana ir veiksmīga, tiks parādīta instalētā Streamlit versija.

Vienkāršas datu tīrīšanas un analīzes lietotnes izveide

Jūs izveidosit vienkāršu tīmekļa lietojumprogrammu, lai uzzinātu, kā Streamlit darbojas un kā tās funkcijas. Šī lietojumprogramma varēs notīrīt augšupielādēto datu kopu, veikt datu analīzi un visbeidzot vizualizēt datus.

Pilns avota kods ir pieejams a GitHub repozitorijs.

Nepieciešamo bibliotēku instalēšana un importēšana

Sāciet, instalējot Pandas, Matplotlib un Seaborn tajā pašā virtuālajā vidē, kurā instalējāt Streamlit, izmantojot šo komandu:

pip install pandas matplotlib seaborn

Pēc tam izveidojiet jaunu Python skriptu un importējiet visas instalētās bibliotēkas.

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

Tas ļaus jums izmantot to funkcijas savā kodā.

Datu kopas augšupielāde un tās satura parādīšana

Pēc tam definējiet funkciju, kas nolasīs augšupielādēto datu kopu. Ja lasīšanas darbība būs veiksmīga, tas atgriezīs DataFrame. Ja nē, sānjoslā tiks parādīts kļūdas ziņojums. Kļūda rodas, ja fails nav derīgs CSV fails.

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

Definējiet citu funkciju, kas izmantos Steamlit, lai parādītu DataFrame tabulas formātā. Tas tiks darīts tikai tad, kad lietotājs pārbaudīs Rādīt neapstrādātus datus izvēles rūtiņa. Tas izmantos Streamlit's izvēles rūtiņa, datu rāmis, un apakšvirsraksts funkcijas.

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

Kad esat izveidojis DataFrame un parādījis neapstrādātus datus, tagad tie ir jātīra, jāanalizē un visbeidzot jāvizualizē.

Datu tīrīšanas veikšana

Sāciet, definējot funkciju, kas veiks datu tīrīšanu. Šī funkcija apstrādās trūkstošās vērtības DataFrame un dublētās rindas. Pēc tam iztīrītais DataFrame tiek parādīts lietotājam, kas izmanto st.dataframe funkciju, ja viņi pārbauda Rādīt notīrītos datus izvēles rūtiņa.

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)

Funkcija parāda arī noņemto dublēto rindu skaitu.

Datu analīzes veikšana

Definējiet datu analīzes funkciju. Šī funkcija parādīs DataFrame aprakstošo statistiku un parādīs korelācijas matricas siltuma karti. Tas izmantos st.pyplot funkcija, lai lietotāja interfeisā parādītu siltuma karti.

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)

Varat modificēt iepriekš minēto funkciju, lai veiktu papildu datu analīzi. Tas palīdzēs gūt plašāku ieskatu no saviem datiem.

Datu vizualizācijas veikšana

Datu vizualizācija ir viena no svarīgākajām lietojumprogrammas funkcijām. Tas ir tāpēc, ka tas sniedz ieskatu datos vizuāli cilvēkiem draudzīgā veidā. Tāpēc šai funkcionalitātei jāļauj lietotājiem mainīt sižetu izskatu.

Lai to paveiktu, izveidojiet funkciju, kas lietotājiem ļaus atlasīt kolonnu, iestatīt tvertņu skaitu un izvēlēties histogrammas krāsu. Pēc tam tas ģenerēs histogrammu un lodziņu un parāda tos, izmantojot st.pyplot funkciju.

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)

Tagad jums ir visas lietotnes pamatfunkcijas.

Lietotāju atsauksmju apkopošana

Dažreiz funkcionalitāte var nedarboties, kā paredzēts. Pēc tam jums ir nepieciešams veids, kā lietotāji var iesniegt atsauksmes. Viens veids ir lietotājiem sazināties ar jums pa e-pastu. Streamlit nodrošina saskarni lietotāja atsauksmju apkopošanai, bet nenodrošina iebūvētu e-pasta sūtīšanas funkcionalitāti. Tomēr varat integrēt ārējās bibliotēkas vai pakalpojumus, lai nosūtītu e-pasta ziņojumus no savas lietotnes.

Lai apkopotu lietotāja atsauksmes, definējiet funkciju, kas lietotājam parādīs veidlapu.

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

Šī veidlapa apkopos lietotāja e-pastu un atsauksmes un nosūtīs tās jums pa e-pastu.

Programmas plūsmas kontrole un lietotnes palaišana

Visbeidzot, jums ir nepieciešama galvenā funkcija, kas apvienos visas šīs funkcijas un kontrolēs programmas plūsmu. Šī funkcija arī nodrošinās, ka lietotāji piekrīt jūsu datu konfidencialitātes noteikumiem, pirms lietojumprogramma apstrādā viņu augšupielādēto datu kopu.

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

Varat palaist programmu neatkarīgi vai importēt to kā moduli izmantojot if __name__ == '__main__': konstrukciju.

if __name__ == '__main__':
main()

Dodieties uz termināli un dodieties uz ceļu, kurā atrodas jūsu projekts. Pēc tam palaidiet šo komandu, lai palaistu lietotni:

streamlit run main.py

Aizvietot galvenais.py ar jūsu skripta faktisko nosaukumu. Pēc komandas Streamlit palaišanas ģenerēs vietējo URL un tīkla URL. Varat izmantot jebkuru no šiem URL, lai mijiedarbotos ar savu lietotni.

Programmas izvade ir šāda:

Interaktīvu tīmekļa lietotņu izveide datu zinātnei nekad nav bijusi tik vienkārša. Lai savai lietojumprogrammai izveidotu lietotāja interfeisu, nav nepieciešamas uzlabotas tīmekļa izstrādes prasmes.

Vai jums joprojām jāmācās Web izstrāde?

Tas ir atkarīgs no jūsu konkrētajiem mērķiem. Ja plānojat izveidot sarežģītas, ar funkcijām bagātas tīmekļa lietojumprogrammas, kurām nepieciešams plašs lietotāju skaits interfeisa dizains un uzlabotas funkcionalitātes, tad tīmekļa izstrādes tehnoloģiju apguve varētu būt izdevīga. Tas ir tāpēc, ka pakalpojumā Streamlit jums ir ierobežota kontrole pār savas lietotnes izskata un darbības precīzo pielāgošanu.