Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from utils import AgeAnalysis | |
| age_analytics = AgeAnalysis() | |
| st.title("Transactions Amount") | |
| st.markdown("#### Transactions Amount and Age Group") | |
| amount_category, amount_query_result = st.columns([0.3,0.7]) | |
| with amount_category: | |
| amount_query = st.radio( | |
| label="Choose the amount block", | |
| options=['Greater than 1000', 'Less than 1000', 'Less than 500', | |
| 'Less than 300', 'Less than 100'] | |
| ) | |
| fraud_only = st.checkbox("Fraudulent only", value=True) | |
| age_category = st.selectbox( | |
| "Age Group", options=['All','40-60', '25-40', '60-80', '80+', '<25'], index=5) | |
| sample_size_for_amount_query = st.number_input( | |
| label="Sample size", min_value=1000, max_value=5000, step=1000, value=2000) | |
| with amount_query_result: | |
| with st.spinner('⏳Loading the figure...'): | |
| st.pyplot( | |
| fig=age_analytics.KDE_plot_age_group_and_transaction_amount( | |
| amount_query, sample_size=sample_size_for_amount_query, | |
| fraud_only=fraud_only, age_group=age_category) | |
| ) | |
| st.markdown(""" | |
| #### `Transactions Amount` across different `Age Groups` | |
| * Minimum Transactions Amount in the dataset : `$1.0` | |
| * Maximum Transactions Amount in the dataset : `$28948.9` | |
| """) | |
| transaction_sample_size, transaction_amount_lower, transaction_amount_upper = st.columns(3) | |
| with transaction_sample_size: | |
| sample_size_for_transaction_amount_comparison = st.number_input( | |
| label="Sample size", min_value=1000, max_value=5000, step=1000, value=2000, key='sample_size_for_transaction_amount_comparison') | |
| with transaction_amount_lower: | |
| transaction_amount_lowerbound = st.number_input( | |
| label="Transaction lowebound", min_value=1, max_value=28949, value=100, step=100,key='transaction_amount_lowerbound') | |
| with transaction_amount_upper: | |
| transaction_amount_upperbound = st.number_input( | |
| label="Transaction lowebound", min_value=1, max_value=28949, value=500, step=100,key='transaction_amount_upperbound') | |
| if transaction_amount_lowerbound > transaction_amount_upperbound: | |
| st.warning( | |
| f''' | |
| Message : `lowerbound` must be less than `upperbound` | |
| ''', icon="⚠️") | |
| transaction_amount_lowerbound = 1 | |
| transaction_amount_upperbound = 100 | |
| with st.spinner('⏳Loading the figure...'): | |
| st.pyplot( | |
| fig=age_analytics.compare_transactions_across_age_group( | |
| sample_size=sample_size_for_transaction_amount_comparison, | |
| lowerbound= transaction_amount_lowerbound, upperbound=transaction_amount_upperbound | |
| ) | |
| ) | |
| st.markdown("#### Transactions Amount") | |
| transaction_amount = st.radio( | |
| label="Choose the amount block", | |
| options=['Less than 1000', 'Less than 500', | |
| 'Less than 300', 'Less than 100'], | |
| key='transaction_amount_study', index=2, | |
| horizontal=True | |
| ) | |
| age_category_for_transaction_query = st.selectbox( | |
| "Age Group", options=['All','40-60', '25-40', '60-80', '80+', '<25'], index=1, | |
| key='age_category_for_transaction_query' | |
| ) | |
| with st.spinner("⏳Loading the figure..."): | |
| st.pyplot( | |
| fig=age_analytics.transaction_amount_study( | |
| query=transaction_amount, age_group=age_category_for_transaction_query), | |
| use_container_width=True | |
| ) | |