[Erklärt] Streamlit Selectbox: Verwendung, Parameter und Beispiele
Streamlit hat die Art und Weise, wie Python-Entwickler Datenanwendungen erstellen, revolutioniert. Es handelt sich um eine leistungsstarke Open-Source-Bibliothek, mit der Entwickler Daten-Skripte mit nur wenigen Codezeilen in gemeinsam nutzbare Webanwendungen umwandeln können. Eine der Schlüsselfunktionen von Streamlit sind interaktive Widgets, und unter ihnen zeichnet sich st.selectbox
durch seine Vielseitigkeit und weit verbreitete Nutzung aus.
st.selectbox
ist ein Widget, mit dem Sie in Ihrer Streamlit-Anwendung eine Auswahlliste anzeigen können. Es ermöglicht Benutzern, eine Option aus einem Dropdown-Menü auszuwählen, was es zu einem großartigen Werkzeug zur Verbesserung der Interaktivität Ihrer App macht. Aber wie funktioniert es und wie können Sie das Beste daraus machen? Tauchen wir ein und erkunden wir es.
Haben Sie von diesem fantastischen Werkzeug zur Datenanalyse und -visualisierung gehört, mit dem Sie Ihre Streamlit-App ganz einfach in Tableau verwandeln können?
PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die Ihnen dabei hilft, eine Tableau-ähnliche Benutzeroberfläche kinderleicht in Ihre eigene Streamlit-App einzubetten. Schauen Sie sich dieses erstaunliche Video von Wie man Daten mit PyGWalker in Python erkundet (opens in a new tab) an, in dem die detaillierten Schritte zum Ausstatten Ihrer Streamlit-App mit dieser leistungsstarken Python-Bibliothek für Datenvisualisierung demonstriert werden!
Herzlichen Dank an Sven und seinen großartigen Beitrag (opens in a new tab) zur PyGWalker-Community!
Zusätzlich können Sie auch die PyGWalker GitHub-Seite (opens in a new tab) für weitere PyGWalker-Beispiele besuchen.
Verständnis von st.selectbox
Was ist st.selectbox?
st.selectbox
ist eine Funktion in Streamlit, die ein Auswahlfeld-Widget erstellt. Es handelt sich um ein Benutzeroberflächenelement, das dem Benutzer eine Liste von Optionen anzeigt. Der Benutzer kann eine Option aus der Liste auswählen, die dann in der App für verschiedene Zwecke verwendet werden kann, z. B. zur Datenfilterung, zur Auswahl von Modellen oder zur Steuerung von Visualisierungen.
import streamlit as st
option = st.selectbox(
'Wie möchten Sie kontaktiert werden?',
('E-Mail', 'Telefon zu Hause', 'Mobiltelefon')
)
st.write('Sie haben ausgewählt:', option)
In diesem Beispiel erstellt st.selectbox
ein Auswahlfeld mit drei Optionen: 'E-Mail', 'Telefon zu Hause' und 'Mobiltelefon'. Die ausgewählte Option wird in der Variablen option
gespeichert, die dann anderswo im Code verwendet werden kann.
Parameter von st.selectbox
st.selectbox
hat mehrere Parameter, um sein Verhalten zu steuern:
label
: Ein String, der als Auswahlfeld-Label verwendet wird.options
: Eine Liste von Optionen, die im Auswahlfeld angezeigt werden sollen. Dies kann eine gültige Python-Liste oder ein array-ähnliches Objekt sein.index
: Der Index der standardmäßig ausgewählten Option. Wenn nicht angegeben, wird die erste Option standardmäßig ausgewählt.format_func
: Eine Funktion, die eine Option als Argument nimmt und eine Zeichenfolgendarstellung davon zurückgibt. Dies ist nützlich, wenn Sie Optionen auf eine bestimmte Weise anzeigen möchten.
Was gibt st.selectbox zurück?
st.selectbox
gibt die derzeit ausgewählte Option zurück. Dies kann ein String, eine Zahl oder ein anderes Objekt sein, abhängig von den bereitgestellten Optionen. Dieser zurückgegebene Wert kann dann in Ihrer App verwendet werden, um z. B. ein DataFrame zu filtern, eine Visualisierung zu steuern oder eine Berechnung auszulösen.
Arbeiten mit st.selectbox
Verwendung von st.selectbox
Die Verwendung von st.selectbox
ist unkompliziert. Zuerst müssen Sie die Streamlit-Bibliothek importieren. Anschließend können Sie st.selectbox
mit den Parametern label und options aufrufen. Die ausgewählte Option wird von der Funktion zurückgegeben.
import streamlit as st
## Definieren Sie die Optionen
options = ['Option 1', 'Option 2', 'Option 3']
## Erstellen Sie das Auswahlfeld
selected_option = st.selectbox('Wählen Sie eine Option aus:', options)
## Zeigen Sie die ausgewählte Option an
st.write('Sie haben ausgewählt:', selected_option)
In diesem Beispiel werden im Auswahlfeld die Optionen 'Option 1', 'Option 2' und 'Option 3' angezeigt.
Beispiele für die Verwendung von st.selectbox
Streamlits st.selectbox
ist ein vielseitiges Widget, das in verschiedenen Szenarien eingesetzt werden kann. Lassen Sie uns einige Beispiele erkunden, um seine Verwendung besser zu verstehen.
Beispiel 1: Datenfilterung
Eine häufige Verwendung von st.selectbox
besteht darin, Benutzern die Möglichkeit zu geben, Daten zu filtern. Wenn Sie beispielsweise ein DataFrame haben, das Informationen über verschiedene Länder enthält, könnten Sie st.selectbox
verwenden, um den Benutzer ein Land auswählen zu lassen und nur die Daten für dieses Land anzuzeigen.
import streamlit as st
import pandas as pd
## Laden Sie die Daten
data = pd.read_csv('data.csv')
## Holen Sie sich die Liste der Länder
countries = data['Country'].unique()
## Erstellen Sie das Auswahlfeld
selected_country = st.selectbox('Wählen Sie ein Land aus:', countries)
## Filtern Sie die Daten
filtered_data = data[data['Country'] == selected_country]
## Zeigen Sie die gefilterten Daten an
st.write(filtered_data)
In diesem Beispiel wird st.selectbox
verwendet, um ein Dropdown-Menü mit den eindeutigen Ländern aus dem DataFrame zu erstellen. Die Auswahl des Benutzers wird dann verwendet, um das DataFrame zu filtern und nur die Daten für das ausgewählte Land anzuzeigen.
Beispiel 2: Modellauswahl
Eine weitere häufige Verwendung von st.selectbox
besteht in maschinellen Lernanwendungen, wo es verwendet werden kann, um Benutzern die Auswahl eines Modells zu ermöglichen. Wenn Sie beispielsweise eine Klassifikations-App entwickeln, könnten Sie st.selectbox
verwenden, um den Benutzer zwischen verschiedenen Klassifikatoren auswählen zu lassen.
import streamlit as st
from sklearn.ensemble import RandomForestClassifier
Bitte geben Sie die Übersetzung für diese Markdown-Datei an. Wenn es eine Frontmatter gibt, stellen Sie bitte sicher, dass Sie das Sprachparameter ebenfalls in de übersetzen. Hier ist die Datei:
aus sklearn.svm import SVC
##Die Modelle definieren
Modelle = {
'Random Forest': RandomForestClassifier(),
'SVM': SVC()
}
##Erstellen Sie das Auswahlfeld
selected_model = st.selectbox('Wählen Sie ein Modell aus:', list(model.keys()))
## Das ausgewählte Modell abrufen
Modell = Modelle[selected_model]
## Das Modell verwenden...
In diesem Beispiel wird st.selectbox
verwendet, um ein Dropdown-Menü mit den verfügbaren Modellen zu erstellen. Die Auswahl des Benutzers wird dann verwendet, um das entsprechende Modell aus dem Wörterbuch abzurufen.
Erkunden anderer Streamlit-Widgets
Obwohl st.selectbox
ein leistungsfähiges Widget ist, bietet Streamlit viele andere Widgets, die zur Erstellung interaktiver Anwendungen verwendet werden können. Lassen Sie uns einige davon erkunden.
st.checkbox
st.checkbox
ist ein weiteres nützliches Streamlit Widget. Es erstellt ein Kontrollkästchen, das vom Benutzer aktiviert oder deaktiviert werden kann. Wie st.selectbox
gibt st.checkbox
den aktuellen Zustand des Kontrollkästchens zurück, der in Ihrer App verwendet werden kann.
import streamlit as st
## Erstellen Sie das Kontrollkästchen
ist_aktiviert = st.checkbox('Aktivieren Sie mich')
## Den Zustand des Kontrollkästchens anzeigen
st.write('Das Kontrollkästchen ist', 'aktiviert' if ist_aktiviert else 'deaktiviert')
st.slider
st.slider
ist ein Widget, das einen Schieberegler erstellt. Der Benutzer kann den Schieberegler verschieben, um einen Wert innerhalb eines festgelegten Bereichs auszuwählen. st.slider
gibt den aktuellen Wert des Schiebereglers zurück.
import streamlit as st
## Den Schieberegler erstellen
wert = st.slider('Wählen Sie einen Wert', 0, 100, 50)
## Den ausgewählten Wert anzeigen
st.write('Sie haben ausgewählt:', wert)
Dies sind nur einige Beispiele für die vielen Widgets, die in Streamlit verfügbar sind. Durch Kombination dieser Widgets können Sie hochinteraktive und benutzerfreundliche Anwendungen erstellen.
Fortgeschrittene Verwendung und Überlegungen
Das Streamlit-Widget st.selectbox
ist mächtig, aber es gibt einige fortgeschrittene Verwendungsmöglichkeiten und Überlegungen, die Sie kennen sollten, um das Beste daraus zu machen.
Aktivieren/Deaktivieren der Textsuche in st.selectbox
Eine der Funktionen von st.selectbox
besteht darin, Benutzern die Möglichkeit zu geben, nach Optionen zu suchen, indem sie Text eingeben. Dies kann sehr nützlich sein, wenn die Auswahlliste eine große Anzahl von Optionen hat. In einigen Fällen möchten Sie jedoch möglicherweise diese Funktion deaktivieren. Streamlit bietet derzeit keine integrierte Möglichkeit, die Textsuche in st.selectbox
zu deaktivieren, dies könnte sich jedoch in zukünftigen Versionen der Bibliothek ändern.
Standardwert und Index
Standardmäßig wählt st.selectbox
die erste Option in der Liste aus. Sie können jedoch den standardmäßig ausgewählten Wert ändern, indem Sie den Parameter index
verwenden. Der Parameter index
nimmt eine Ganzzahl an, die den Index der standardmäßig ausgewählten Option darstellt.
import streamlit as st
# Erstellen Sie das Auswahlfeld mit standardmäßig ausgewählter 'Option 2'
ausgewählte_option = st.selectbox('Wählen Sie eine Option:', ['Option 1', 'Option 2', 'Option 3'], index=1)
# Den ausgewählten Wert anzeigen
st.write('Sie haben ausgewählt:', ausgewählte_option)
In diesem Beispiel wird standardmäßig 'Option 2' ausgewählt, da sein Index (1) an den Parameter index
übergeben wird.
Benutzerdefiniertes Formatieren mit format_func
st.selectbox
ermöglicht es Ihnen, die Anzeige der Optionen mithilfe des Parameters format_func
anzupassen. format_func
ist eine Funktion, die eine Option als Eingabe nimmt und eine Zeichenfolgenrepräsentation zurückgibt.
import streamlit as st
# Definieren Sie eine Formatierungsfunktion
def format_func(option):
return option.upper()
# Erstellen Sie das Auswahlfeld mit benutzerdefinierter Formatierung
ausgewählte_option = st.selectbox('Wählen Sie eine Option:', ['Option 1', 'Option 2', 'Option 3'], format_func=format_func)
# Den ausgewählten Wert anzeigen
st.write('Sie haben ausgewählt:', ausgewählte_option)
In diesem Beispiel werden die Optionen aufgrund des Parameters format_func
in Großbuchstaben angezeigt.
Fazit
st.selectbox
von Streamlit ist ein vielseitiges und leistungsfähiges Widget, das die Interaktivität Ihrer Python-Apps erheblich verbessern kann. Egal, ob Sie ein Datenvisualisierungstool, eine maschinelle Lernanwendung oder eine andere Art von interaktiver App erstellen - mit st.selectbox
können Sie Ihre App benutzerfreundlicher und intuitiver gestalten. Also probieren Sie st.selectbox
aus und sehen Sie, wie es Ihre Streamlit-Apps verbessern kann!
Haben Sie schon von diesem großartigen Datenanalyse- und Datenauswertungstool gehört, das Ihre Streamlit-App in Tableau verwandelt?
PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die es Ihnen ermöglicht, eine Tableau-ähnliche Benutzeroberfläche in Ihre eigene Streamlit-App einzubetten - ganz mühelos.
Häufig gestellte Fragen
-
Was ist der Standardwert von st.selectbox in Streamlit? Standardmäßig wählt st.selectbox die erste Option in der Liste aus. Sie können jedoch eine andere Standardoption angeben, indem Sie den
index
-Parameter verwenden. -
Wie kann ich die Anzeige der Optionen in st.selectbox anpassen? Sie können die Anzeige der Optionen in st.selectbox mithilfe des
format_func
-Parameters anpassen.format_func
ist eine Funktion, die eine Option als Eingabe nimmt und eine Zeichenfolgenrepräsentation zurückgibt. -
Kann ich die Textsuchefunktion in st.selectbox deaktivieren? Streamlit bietet derzeit keine integrierte Möglichkeit, die Textsuchefunktion in st.selectbox zu deaktivieren. Dies könnte sich jedoch in zukünftigen Versionen der Bibliothek ändern.