Skip to content

[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.

PyGWalker for Data visualization in Streamlit (opens in a new tab)

Häufig gestellte Fragen

  1. 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.

  2. 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.

  3. 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.