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)