| 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) |
|
|
| |
| 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("") |
|
|