persistent-docker / src /apps /streamlit_demo.py
Anthony Truchet
refactor: run pre-commit hooks for formating
531597e
Raw
History Blame Contribute Delete
1.49 kB
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)")