import os from pathlib import Path import numpy as np import pandas as pd import streamlit as st from athai.data_utils import cached_download_csv st.title("Uber pickups in NYC") DATE_COLUMN = "date/time" DATA_URL = ( "https://s3-us-west-2.amazonaws.com/" "streamlit-demo-data/uber-raw-data-sep14.csv.gz" ) DATA_PATH = Path(os.environ.get("APP_DATA")) @st.cache_resource def load_data(nrows): data = cached_download_csv(DATA_PATH, DATA_URL, nrows=nrows) def lowercase(x): return str(x).lower() data.rename(lowercase, axis="columns", inplace=True) data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN]) return data data_load_state = st.text("Loading data...") data = load_data(10000) data_load_state.text("Done! (using st.cache)") if st.checkbox("Show raw data"): 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) # Some number in the range 0-23 hour_to_filter = st.slider("hour", 0, 23, 17) filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter] st.subheader("Map of all pickups at %s:00" % hour_to_filter) st.map(filtered_data) uploaded_file = st.file_uploader("Choose a file") if uploaded_file is not None: st.write(uploaded_file.name) bytes_data = uploaded_file.getvalue() st.write(len(bytes_data), "bytes") st.markdown("![Kitty](./app/static/cat.jpeg)")