Spaces:
Sleeping
Sleeping
File size: 4,709 Bytes
86ed73b 9aedd08 a9f7371 c9d3d23 b920ced c9d3d23 86ed73b 1b4c833 9a9bb14 0888f10 86ed73b c3372b1 86ed73b 36dfd92 86ed73b 6d6fe0c 86ed73b ad1a420 ad8ac47 8e8b49c 069cffd a1f0692 be0bdcd 8e8b49c be0bdcd 069cffd 2473da5 77121f6 860a9c5 77121f6 860a9c5 645ce19 069cffd 860a9c5 069cffd 8e7f6c4 2bff3e4 c93395c 86ed73b c4dc07b 12e1aef 3aa4bc2 36dfd92 3aa4bc2 36dfd92 3aa4bc2 c3372b1 3aa4bc2 c3372b1 36dfd92 3aa4bc2 86ed73b |
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 |
import streamlit as st
import pandas as pd
def get_market_submarket(df, google_ola):
filtered_row = df[df['google_ola'] == google_ola].iloc[0]
return filtered_row['rent_combined'], filtered_row['building_sf'], filtered_row['rented_sf'], filtered_row['market_costar'], filtered_row['full_submarket_costar']
def main():
st.set_page_config(initial_sidebar_state="collapsed", layout="wide")
st.session_state['user_select_value'] = ""
st.session_state['year_buit'] = 1999
st.session_state['submarket_val'] = ""
st.session_state['market_val'] = ""
def display_list_and_input():
option_choice = st.selectbox("Select a property address", df_options)
return option_choice
if 'user_select_value' not in st.session_state:
st.session_state['user_select_value'] = ""
if 'building_sf' not in st.session_state:
st.session_state['building_sf'] = 0
if 'rented_sf' not in st.session_state:
st.session_state['rented_sf'] = 0
if 'execution_dates' not in st.session_state:
st.session_state['execution_dates'] = 2014
if 'LSF' not in st.session_state:
st.session_state['LSF'] = 75000
if 'prediction' not in st.session_state:
st.session_state['prediction'] = 0
st.title("Search")
df_properties = pd.read_csv("all_data_with_market.csv", encoding='utf-8')
df_options = st.session_state.get("df_options", [st.session_state['user_select_value']] + df_properties.google_ola.tolist())
# search_options = [""] + options
selected_option = display_list_and_input()
col_1_1, col_1_2 = st.columns([1, 2])
with col_1_1:
st.write('Filter definition')
min_property_size, max_property_size = st.slider('Property Size % Filter', min_value=-100, max_value=200, step = 10,
value=(-50, 100))
min_property_lease_size, max_property_lease_size = st.slider('Lease Size % Filter', min_value=-100, max_value=300, step = 10,
value=(-100, 300))
months_back = st.slider('Lease Range Filter (Last X Months)', min_value=0, max_value=36,
value=(14))
st.session_state['min_property_size_perc'] = min_property_size
st.session_state['max_property_size_perc'] = max_property_size
st.session_state['min_property_lease_size_perc'] = min_property_lease_size
st.session_state['max_property_lease_size_perc'] = max_property_lease_size
st.session_state['months_back'] = months_back
if selected_option != "":
# user's filter for property size is a range in percentage around picked property
min_size = (100 + st.session_state['min_property_size_perc']) / 100 * st.session_state['building_sf']
max_size = (100 + st.session_state['max_property_size_perc']) / 100 * st.session_state['building_sf']
# # user's filter for lease size is a range in percentage around picked lease
lease_min_size = (100 + st.session_state['min_property_lease_size_perc']) / 100 * st.session_state['rented_sf']
lease_max_size = (100 + st.session_state['max_property_lease_size_perc']) / 100 * st.session_state['rented_sf']
#apply all filters
mask = (df_properties['rented_sf'] >= lease_min_size) & (df_properties['rented_sf'] <= lease_max_size) &(df_properties['building_sf'] >= min_size) & (df_properties['building_sf'] <= max_size) & (df_properties['months_since'] <= st.session_state['months_back'])
df_properties_cnt = df_properties[mask].copy()
# st.markdown(f"**Number of Rows After Applying Filters:** <span style='font-size:24px'>{len(df_properties_cnt)}</span>", unsafe_allow_html=True)
# st.write("Number of Rows After Applying Filters : ", len(df_properties_cnt))
if st.button("Submit"):
if selected_option == "":
st.write(":red[Please choose the property address]")
else:
st.session_state['user_select_value'] = selected_option
st.session_state['execution_dates'] = 2014
prediction, building_sf, rented_sf, market_val, submarket_val = get_market_submarket(df_properties, selected_option)
st.session_state['market_val'] = market_val
st.session_state['submarket_val'] = submarket_val
st.session_state['building_sf'] = building_sf
st.session_state['rented_sf'] = rented_sf
st.session_state['prediction'] = prediction
st.switch_page("pages/market_rent_estimation.py")
if __name__ == "__main__":
main() |