Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import pandas as pd
|
| 3 |
+
import numpy as np
|
| 4 |
+
from datetime import datetime, timedelta
|
| 5 |
+
from io import StringIO
|
| 6 |
+
|
| 7 |
+
st.title('Cumulative Trend')
|
| 8 |
+
|
| 9 |
+
uploaded_file = st.file_uploader("Choose a csv file including 'date' column.")
|
| 10 |
+
|
| 11 |
+
if uploaded_file is not None:
|
| 12 |
+
df = pd.read_csv(uploaded_file, sep=",", usecols=["date"])
|
| 13 |
+
df = df.dropna(axis=0)
|
| 14 |
+
|
| 15 |
+
date_list = pd.to_datetime(df.squeeze()).dt.date.tolist()
|
| 16 |
+
date_list.sort()
|
| 17 |
+
start_date = date_list[0]
|
| 18 |
+
end_date = date_list[-1]
|
| 19 |
+
day_count = (end_date - start_date).days + 1
|
| 20 |
+
x = np.arange(start_date, end_date + timedelta(days=1), timedelta(days=1)).astype(datetime)
|
| 21 |
+
y = np.zeros(day_count)
|
| 22 |
+
for d in date_list:
|
| 23 |
+
y[(d - start_date).days] += 1
|
| 24 |
+
|
| 25 |
+
y_count = np.cumsum(y)
|
| 26 |
+
df = pd.DataFrame({'date': x, 'count': y_count})
|
| 27 |
+
|
| 28 |
+
st.area_chart(df.set_index('date'))
|
| 29 |
+
|
| 30 |
+
col1, col2 = st.columns(2)
|
| 31 |
+
col1.metric("rows", len(date_list))
|
| 32 |
+
col2.metric("days", day_count)
|
| 33 |
+
|
| 34 |
+
col3, col4 = st.columns(2)
|
| 35 |
+
col3.metric("start", str(start_date))
|
| 36 |
+
col4.metric("end", str(end_date))
|
| 37 |
+
|