Die folgende japanische Übersetzung. https://docs.streamlit.io/en/latest/tutorial/create_a_data_explorer_app.html#create-an-app
uber_pickups.py
import streamlit as st
import pandas as pd
import numpy as np
st.title('Uber pickups in NYC')
streamlit run uber_pickups.py Eine neue Registerkarte wird automatisch geöffnet.
DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
'streamlit-demo-data/uber-raw-data-sep14.csv.gz')
def load_data(nrows):
data = pd.read_csv(DATA_URL, nrows=nrows)
lowercase = lambda x: str(x).lower()
data.rename(lowercase, axis='columns', inplace=True)
data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
return data
# Create a text element and let the reader know the data is loading.
data_load_state = st.text('Loading data...')
# Load 10,000 rows of data into the dataframe.
data = load_data(10000)
# Notify the reader that the data was successfully loaded.
data_load_state.text('Loading data...done!')
Diese Funktion verwendet einen Parameter (nrows), der die Anzahl der Zeilen angibt, die Sie in den Datenrahmen laden möchten.
In der oberen rechten Ecke der App werden mehrere Schaltflächen angezeigt, in denen Sie gefragt werden, ob Sie die App erneut ausführen möchten. Wenn Sie Immer neu ausführen auswählen, werden Ihre Änderungen bei jedem Speichern automatisch angezeigt.
Wie folgt hinzugefügt
@st.cache
def load_data(nrows):
Streamlit führt die App automatisch erneut aus, wenn Sie das Skript speichern. Ich führe dieses Skript zum ersten Mal auf @ st.cache aus, daher hat sich nichts geändert. Lassen Sie uns etwas mehr mit der Datei spielen, damit Sie die Kraft des Caches spüren können.
Geändert wie folgt
#Vorher ändern
data_load_state.text('Loading data...done!')
#Nach der veränderung
data_load_state.text("Done! (using st.cache)")
Können Sie sehen, dass die hinzugefügte Zeile sofort herauskam? Einen Schritt zurück zu machen, ist eigentlich sehr überraschend. Hinter den Kulissen passiert etwas Magisches, und es ist nur eine Codezeile erforderlich, um es zu starten.
Fügen Sie am Ende Folgendes hinzu
st.subheader('Raw data')
st.write(data)
st.subheader('Number of pickups by hour')
hist_values = np.histogram(
data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)
Nach einer kurzen Überprüfung scheint die geschäftigste Zeit 17:00 Uhr (17:00 Uhr) zu sein.
Ich habe die native bar_chart () -Methode von Streamlit verwendet, um dieses Diagramm zu zeichnen, aber es ist wichtig zu wissen, dass Streamlit komplexere Diagrammbibliotheken wie Altair, Bokeh, Plotly und Matplotlib unterstützt. ist. Eine vollständige Liste finden Sie in den unterstützten Diagrammbibliotheken.
Mithilfe von Histogrammen in Ubers Datensatz konnten wir die geschäftigsten Zeiten der Abholung ermitteln. Was aber, wenn wir wissen wollten, wo in der Stadt die Abholungen konzentriert waren? Diese Daten können als Balkendiagramm angezeigt werden, sind jedoch nur dann leicht zu interpretieren, wenn Sie mit den Längen- und Breitengradkoordinaten der Stadt vertraut sind. Verwenden Sie die Streamlit-Funktion st.map (), um die Daten auf einer Karte der Stadt New York zu überlagern und die Konzentration der Tonabnehmer anzuzeigen.
st.subheader('Map of all pickups')
st.map(data)
Nachdem ich das Histogramm gezeichnet hatte, stellte ich fest, dass die geschäftigste Zeit für Uber-Pickups 17:00 war. Zeichnen wir die Karte neu, um zu zeigen, dass die Tonabnehmer um 17:00 Uhr konzentriert sind.
Fügen Sie am Ende Folgendes hinzu.
hour_to_filter = 17
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]
st.subheader(f'Map of all pickups at {hour_to_filter}:00')
st.map(filtered_data)
#Vorher ändern
hour_to_filter = 17
#Nach der veränderung
hour_to_filter = st.slider('hour', 0, 23, 17) # min: 0h, max: 23h, default: 17h
#Vorher ändern
st.subheader('Raw data')
st.write(data)
#Nach der veränderung
if st.checkbox('Show raw data'):
st.subheader('Raw data')
st.write(data)
Recommended Posts