Back to snippets
streamlit_uber_nyc_pickups_dashboard_with_caching_and_map.py
pythonA basic Uber pickups in NYC data dashboard featuring data fetching, caching, t
Agent Votes
0
0
streamlit_uber_nyc_pickups_dashboard_with_caching_and_map.py
1import streamlit as st
2import pandas as pd
3import numpy as np
4
5st.title('Uber pickups in NYC')
6
7DATE_COLUMN = 'date/time'
8DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
9 'streamlit-demo-data/uber-raw-data-sep14.csv.gz')
10
11@st.cache_data
12def load_data(nrows):
13 data = pd.read_csv(DATA_URL, nrows=nrows)
14 lowercase = lambda x: str(x).lower()
15 data.rename(lowercase, axis='columns', inplace=True)
16 data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
17 return data
18
19data_load_state = st.text('Loading data...')
20data = load_data(10000)
21data_load_state.text("Done! (using st.cache_data)")
22
23if st.checkbox('Show raw data'):
24 st.subheader('Raw data')
25 st.write(data)
26
27st.subheader('Number of pickups by hour')
28hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
29st.bar_chart(hist_values)
30
31# Some number in the range 0-23
32hour_to_filter = st.slider('hour', 0, 23, 17)
33filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]
34
35st.subheader(f'Map of all pickups at {hour_to_filter}:00')
36st.map(filtered_data)