La traduction japonaise suivante. 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 Un nouvel onglet s'ouvrira automatiquement.
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!')
Cette fonction prend un paramètre (nrows) qui spécifie le nombre de lignes que vous souhaitez charger dans le bloc de données.
Dans le coin supérieur droit de l'application, vous verrez plusieurs boutons vous demandant si vous souhaitez réexécuter l'application. Si vous sélectionnez Toujours réexécuter, vos modifications s'afficheront automatiquement à chaque enregistrement.
Ajouté comme suit
@st.cache
def load_data(nrows):
Streamlit réexécutera automatiquement l'application lorsque vous enregistrez le script. C'est la première fois que je lance ce script sur @ st.cache, donc rien n'a changé. Jouons un peu plus avec le fichier pour ressentir la puissance du cache.
Modifié comme suit
#Changer avant
data_load_state.text('Loading data...done!')
#Après le changement
data_load_state.text("Done! (using st.cache)")
Pouvez-vous voir que la ligne ajoutée est sortie immédiatement? Prendre du recul, c'est en fait très surprenant. Quelque chose de magique se passe dans les coulisses et il suffit d'une seule ligne de code pour le lancer.
Ajoutez ce qui suit à la fin
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)
Après un rapide contrôle, il semble que l'heure la plus chargée soit 17h00 (17h00).
J'ai utilisé la méthode native bar_chart () de Streamlit pour dessiner ce diagramme, mais il est important de savoir que Streamlit prend en charge des bibliothèques de graphiques plus complexes telles que Altair, Bokeh, Plotly et Matplotlib. est. Consultez les bibliothèques de graphiques prises en charge pour une liste complète.
En utilisant des histogrammes dans l'ensemble de données d'Uber, nous avons pu identifier les heures les plus chargées du ramassage, mais que se passe-t-il si nous voulions savoir où dans la ville les ramassages étaient concentrés? Ces données peuvent être affichées sous forme de graphique à barres, mais elles ne sont pas faciles à interpréter si vous ne connaissez pas les coordonnées de latitude et de longitude de la ville. Utilisons la fonction Streamlit st.map () pour superposer les données sur une carte de la ville de New York pour montrer la concentration des micros.
st.subheader('Map of all pickups')
st.map(data)
Après avoir dessiné l'histogramme, j'ai trouvé que le moment le plus chargé pour les micros Uber était 17h00. Redessinons la carte pour montrer que les micros sont concentrés à 17h00.
Ajoutez ce qui suit à la fin.
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)
#Changer avant
hour_to_filter = 17
#Après le changement
hour_to_filter = st.slider('hour', 0, 23, 17) # min: 0h, max: 23h, default: 17h
#Changer avant
st.subheader('Raw data')
st.write(data)
#Après le changement
if st.checkbox('Show raw data'):
st.subheader('Raw data')
st.write(data)
Recommended Posts