Erstellen Sie dank Streamlit interaktive Webanwendungen für Data-Science- und Machine-Learning-Projekte nur mit Python!

Streamlit ist eine Open-Source-Python-Bibliothek zum Erstellen von Webanwendungen für Data-Science- und Machine-Learning-Projekte. Es ist für die Verwendung durch Datenwissenschaftler und Ingenieure für maschinelles Lernen konzipiert, die nicht über umfassende Kenntnisse in der Front-End-Entwicklung verfügen. Es verfügt über eine einfache Syntax, mit der Sie mit wenigen Codezeilen interaktive Web-Apps erstellen können.

Durch die Kapselung komplexer technischer Details hinter einer benutzerfreundlichen Oberfläche ermöglicht Streamlit den Benutzern, sich auf die Erkundung und Präsentation ihrer Daten, Prototypen oder Modelle in Echtzeit zu konzentrieren. Dies macht es zu einem wertvollen Werkzeug für den schnellen Austausch von Erkenntnissen.

Installieren der Streamlit-Bibliothek

Erstellen Sie eine neue virtuelle Umgebung. Dadurch wird sichergestellt, dass es nach der Installation zu keinem Paketversionskonflikt kommt

instagram viewer
Streamlit. Dann Verwenden Sie pip zur Installation Streamlit durch Ausführen des folgenden Befehls:

pip install streamlit

Überprüfen Sie anschließend, ob die Installation korrekt installiert ist.

streamlit --version

Wenn die Installation erfolgreich ist, wird die installierte Streamlit-Version angezeigt.

Erstellen einer einfachen App zur Datenbereinigung und -analyse

Sie erstellen eine einfache Webanwendung, um zu erfahren, wie Streamlit funktioniert und welche Funktionen es bietet. Diese Anwendung kann einen hochgeladenen Datensatz bereinigen, eine Datenanalyse durchführen und schließlich die Daten visualisieren.

Der vollständige Quellcode ist in a verfügbar GitHub-Repository.

Installieren und Importieren der erforderlichen Bibliotheken

Beginnen Sie mit der Installation von Pandas, Matplotlib und Seaborn in derselben virtuellen Umgebung, in der Sie Streamlit installiert haben, indem Sie den folgenden Befehl verwenden:

pip install pandas matplotlib seaborn

Erstellen Sie dann ein neues Python-Skript und importieren Sie alle installierten Bibliotheken.

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

Dadurch können Sie deren Funktionalitäten in Ihrem Code nutzen.

Hochladen eines Datensatzes und Anzeigen seines Inhalts

Definieren Sie dann eine Funktion, die einen hochgeladenen Datensatz liest. Es wird dann ein DataFrame zurückgegeben, wenn der Lesevorgang erfolgreich ist. Wenn nicht, wird in der Seitenleiste eine Fehlermeldung angezeigt. Der Fehler tritt auf, wenn die Datei keine gültige CSV-Datei ist.

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

Definieren Sie eine weitere Funktion, die Steamlit verwendet, um den DataFrame in einem Tabellenformat anzuzeigen. Dies geschieht nur, wenn der Benutzer das überprüft Rohdaten anzeigen Kontrollkästchen. Es wird Streamlits nutzen Kontrollkästchen, Datenrahmen, Und Untertitel Funktionen.

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

Nachdem Sie den DataFrame erstellt und Rohdaten angezeigt haben, müssen Sie nun die Daten bereinigen, analysieren und schließlich visualisieren.

Datenbereinigung durchführen

Beginnen Sie mit der Definition einer Funktion, die die Datenbereinigung durchführt. Diese Funktion behandelt fehlende Werte im DataFrame und doppelte Zeilen. Der bereinigte DataFrame wird dann dem Benutzer angezeigt st.dataframe Funktion, wenn sie das überprüfen Bereinigte Daten anzeigen Kontrollkästchen.

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)

Die Funktion zeigt auch die Anzahl der entfernten doppelten Zeilen an.

Datenanalyse durchführen

Definieren Sie eine Datenanalysefunktion. Diese Funktion zeigt beschreibende Statistiken des DataFrame an und zeigt die Korrelationsmatrix-Heatmap an. Es wird das nutzen st.pyplot Funktion zur Anzeige der Heatmap auf der Benutzeroberfläche.

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)

Sie können die obige Funktion ändern, um eine weitere Datenanalyse durchzuführen. Dies wird Ihnen helfen, mehr Erkenntnisse aus Ihren Daten zu gewinnen.

Durchführen einer Datenvisualisierung

Die Datenvisualisierung ist eine der entscheidenden Funktionalitäten der Anwendung. Dies liegt daran, dass es auf benutzerfreundliche Weise einen visuellen Einblick in die Daten ermöglicht. Diese Funktionalität sollte es den Benutzern daher ermöglichen, das Aussehen der Diagramme zu ändern.

Erstellen Sie dazu eine Funktion, mit der Benutzer eine Spalte auswählen, die Anzahl der Abschnitte festlegen und eine Farbe für das Histogramm auswählen können. Anschließend werden ein Histogramm und ein Boxplot erstellt und mit angezeigt st.pyplot Funktion.

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)

Jetzt stehen Ihnen alle Kernfunktionen der App zur Verfügung.

Sammeln des Feedbacks der Benutzer

Manchmal funktioniert eine Funktionalität möglicherweise nicht wie erwartet. Anschließend benötigen Sie eine Möglichkeit für die Benutzer, ihr Feedback abzugeben. Eine Möglichkeit besteht darin, dass die Benutzer Sie per E-Mail erreichen. Streamlit bietet die Schnittstelle zum Sammeln des Benutzerfeedbacks, bietet jedoch keine integrierte Funktionalität zum direkten Senden von E-Mails. Sie können jedoch externe Bibliotheken oder Dienste integrieren, um E-Mails von Ihrer App aus zu versenden.

Um das Feedback des Benutzers zu sammeln, definieren Sie eine Funktion, um dem Benutzer ein Formular anzuzeigen.

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

Dieses Formular sammelt die E-Mails und das Feedback des Benutzers und sendet es Ihnen per E-Mail.

Steuern Sie den Ablauf Ihres Programms und führen Sie die App aus

Schließlich benötigen Sie eine Hauptfunktion, die alle diese Funktionen zusammenfasst und den Programmablauf steuert. Diese Funktion stellt außerdem sicher, dass die Benutzer Ihren Datenschutzbedingungen zustimmen, bevor die Anwendung ihren hochgeladenen Datensatz verarbeitet.

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

Sie können Ihr Programm unabhängig ausführen oder als Modul importieren unter Verwendung des if __name__ == '__main__':-Konstrukts.

if __name__ == '__main__':
main()

Gehen Sie zum Terminal und navigieren Sie zu dem Pfad, in dem sich Ihr Projekt befindet. Führen Sie dann den folgenden Befehl aus, um die App zu starten:

streamlit run main.py

Ersetzen main.py mit dem tatsächlichen Namen Ihres Skripts. Nach der Ausführung des Befehls generiert Streamlit eine lokale URL und eine Netzwerk-URL. Sie können jede dieser URLs verwenden, um mit Ihrer App zu interagieren.

Die Ausgabe des Programms ist wie folgt:

Das Erstellen interaktiver Web-Apps für die Datenwissenschaft war noch nie so einfach. Sie benötigen keine fortgeschrittenen Kenntnisse in der Webentwicklung, um eine Benutzeroberfläche für Ihre Anwendung zu erstellen.

Sollten Sie trotzdem Webentwicklung lernen?

Es hängt von Ihren spezifischen Zielen ab. Wenn Sie damit rechnen, komplexe, funktionsreiche Webanwendungen zu erstellen, die umfangreiche Benutzeranforderungen erfordern Schnittstellendesign und erweiterte Funktionalitäten, dann könnte das Erlernen von Webentwicklungstechnologien sein vorteilhaft. Dies liegt daran, dass Sie in Streamlit nur begrenzte Kontrolle über die detaillierte Anpassung des Erscheinungsbilds und Verhaltens Ihrer App haben.