Jira Stats¶
Process CSV file exported from JIRA filter with all columns.
import streamlit as st
import pandas as pd
import os
csv_files = [f for f in os.listdir('.') if f.endswith('.csv')]
csv_files.sort()
csv_file = st.sidebar.radio("Select exported JIRA filter CSV file to process:", csv_files)
df = pd.read_csv(csv_file)
def drop_columns_from_list():
with open("drop_columns.txt", "r") as f:
return [line.strip() for line in f]
def drop_columns_by_prefix():
prefixes = [
'Watchers Id',
'Watchers',
'Log Work',
'Attachment',
'Comment',
'Components',
'Labels',
'Sprint',
]
cols_to_drop = [col for col in df.columns if any(col.startswith(prefix) for prefix in prefixes)]
# st.write(cols_to_drop)
df.drop(columns=cols_to_drop, inplace=True)
drop_columns_by_prefix()
# df.drop(columns=drop_columns_from_list(), inplace=True)
st.sidebar.write("---")
num_rows = df.shape[0]
st.sidebar.write(f"Jiras: `{num_rows}`")
total_time_spent = df['Time Spent'].sum()
hours = round(total_time_spent/3600)
st.sidebar.write(f"Total time spent: `{hours}` h")
Select row
num = st.number_input("Row", min_value=0, max_value=num_rows-1)
Extract row to Series
dfs = df.iloc[num]
drops = dfs.dropna()
st.write(f"Num cols: `{dfs.shape[0]}`, not empty: `{drops.shape[0]}`")
# st.table(dfs)
st.table(drops)