Spaces:
Runtime error
Runtime error
File size: 4,873 Bytes
9495d59 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
import matplotlib.pyplot as plt
import pandas as pd
import plotly.express as px
import streamlit as st
def load_data():
# Load the data
data = pd.read_csv(
"micro_world.csv"
)
return data
def introduction():
# Write the title and the subheader
st.title(
"Overview of Financial Accessibility in the Philippines"
)
st.subheader(
"""
In line with the National Strategy for Financial Inclusion (NSFI) 2022-2028 by Bangko Sentral ng Pilipinas (BSP), this sprint aims to:
1. Profile financial inclusion (FI) metrics in the Philippines using survey data from World Bank.
2. Formulate policy recommendations to further improve access to financial services particularly to vulnerable sectors.
"""
)
# Load photo
st.image("streamlit-photo-1.jpeg")
# Load data
data = load_data()
# Display data
st.markdown("**The Data**")
st.dataframe(data)
st.markdown("Source: Global Findex 2017 from World Bank.")
def fi_state_ph():
# Write the title
st.title(
"This is the current state of FI in the Philippines."
)
# Load data
data = load_data()
# Fetch Philippine data
philippine_data = data[
data['economy'] == 'Philippines'
]
# Create another column for debit card ownership
philippine_data['has_debit_card'] = philippine_data['fin2'].apply(
lambda x: 1 if x == 1 else 0
)
# Compute overall debit card ownership
percent_debit_card_ownership = philippine_data['has_debit_card'].sum() * 100.0 / philippine_data[
'wpid_random'].count()
# Partition the page into 2
col1, col2 = st.columns(2)
# Display text in column 1
col1.markdown(
"In the Philippines, there is still an opportunity to expand access to financial services: "
)
# Display metric in column 2
col2.metric(
label='% of Population with Debit Card',
value=percent_debit_card_ownership
)
# Display text
st.markdown("In terms of gender breakdown:")
# Create another column for gender
philippine_data['gender'] = philippine_data['female'].apply(
lambda x: 'male' if x == 1 else 'female'
)
# Compute breakdown of access to debit card by gender
debit_by_gender = philippine_data.groupby('gender').agg(
total_debit_card_owners=('has_debit_card', 'sum'),
total_population=('wpid_random', 'count')
).reset_index()
# Compute % debit card ownership
debit_by_gender['% debit card ownership'] = debit_by_gender['total_debit_card_owners'] * 100.0 / debit_by_gender[
'total_population']
# Plot the data
fig, ax = plt.subplots(figsize=(6, 3), dpi=200)
ax.bar(
debit_by_gender["gender"],
debit_by_gender["% debit card ownership"],
)
ax.set_xlabel("Gender")
ax.set_ylabel("% Debit Card Ownership")
# Show the data
st.pyplot(fig)
def fi_state_worldwide():
# Write the title and the subheader
st.title(
"This is the current state of FI worldwide."
)
st.markdown(
"**Here is a bubble map presenting the % of debit card ownership per country:**"
)
# Load data
data = load_data()
# Create another column for debit card ownership
data['has_debit_card'] = data['fin2'].apply(
lambda x: 1 if x == 1 else 0
)
# Group the data and apply aggregations
grouped_data = data.groupby(['economy', 'economycode', 'regionwb']).agg(
total_debit_card_owners=('has_debit_card', 'sum'),
total_population=('wpid_random', 'count')
).reset_index()
# Compute debit card ownership in %
grouped_data['% of population with debit card'] = grouped_data['total_debit_card_owners'] * 100.0 / grouped_data[
'total_population']
# Build the bubble map
fig = px.scatter_geo(
grouped_data,
locations="economycode",
color="regionwb",
hover_name="economy",
size="% of population with debit card",
projection="natural earth"
)
# Show the figure
st.plotly_chart(fig)
def recommendations():
# Write the title
st.title(
"What We Can Do"
)
def the_team():
# Write the title
st.title(
"The Team"
)
list_of_pages = [
"Towards Financial Inclusion",
"FI Status of the Philippines",
"FI Status Worldwide",
"What We Can Do",
"The Team"
]
st.sidebar.title(':scroll: Main Pages')
selection = st.sidebar.radio("Go to: ", list_of_pages)
if selection == "Towards Financial Inclusion":
introduction()
elif selection == "FI Status of the Philippines":
fi_state_ph()
elif selection == "FI Status Worldwide":
fi_state_worldwide()
elif selection == "What We Can Do":
recommendations()
elif selection == "The Team":
the_team()
|