Borya-Goldarb commited on
Commit
64933b9
·
verified ·
1 Parent(s): 94f7dbd

Update pages/market_rent_estimation.py

Browse files
Files changed (1) hide show
  1. pages/market_rent_estimation.py +11 -19
pages/market_rent_estimation.py CHANGED
@@ -21,14 +21,15 @@ def main():
21
  st.set_page_config(initial_sidebar_state="collapsed", layout="wide")
22
  tab1, tab2 = st.tabs(["Comps", "Combined estimation"])#, "Market distributions", "Rexy"])
23
 
24
- distances_matrix = np.load('all_data_matrix.npy')
25
- df_properties = pd.read_csv("all_data.csv", encoding='utf-8')
26
 
27
 
28
  # update the values of date and price of the historical lease to today date and nan value for price
29
  row_index = (df_properties[df_properties['google_ola'] == st.session_state['user_select_value']].index)[0]
30
- df_properties.loc[row_index, ["months_since", "rent_combined", "execution_date"]] = [0, -1, None]
31
-
 
32
 
33
  # user's filter for property size is a range in percentage around picked property
34
  min_size = (100 + st.session_state['min_property_size_perc']) / 100 * st.session_state['building_sf']
@@ -39,26 +40,17 @@ def main():
39
  lease_max_size = (100 + st.session_state['max_property_lease_size_perc']) / 100 * st.session_state['rented_sf']
40
 
41
  #apply all filters
42
- #
43
- 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['market_costar'] <= st.session_state['market_val'])
44
  df_properties_filtered = df_properties[mask]
45
 
46
  # create distances matrix for remaining rows
47
- positions = np.nonzero(mask)[0]
48
- distances_matrix_filtered = distances_matrix[np.ix_(positions, positions)]
 
 
 
49
 
50
- # row_index = df_properties_filtered.index.get_loc(st.session_state['user_select_value'])
51
  df_properties_filtered = df_properties_filtered.reset_index()
52
- row_index = (df_properties_filtered[df_properties_filtered['google_ola'] == st.session_state['user_select_value']].index)[0]
53
- distances = distances_matrix_filtered[row_index]
54
- sorted_indices = np.argsort(distances)
55
- sorted_distances = distances[sorted_indices]
56
- sorted_indexes = df_properties_filtered.index[sorted_indices]
57
- reordered_df_properties_filtered = df_properties_filtered.loc[sorted_indexes]
58
-
59
- first_row_coords = (reordered_df_properties_filtered.loc[row_index, 'lat'],
60
- reordered_df_properties_filtered.loc[row_index, 'long'])
61
-
62
  reordered_df_properties_filtered['distance_from_first (km)'] = reordered_df_properties_filtered.apply(calculate_distance, axis=1)
63
 
64
 
 
21
  st.set_page_config(initial_sidebar_state="collapsed", layout="wide")
22
  tab1, tab2 = st.tabs(["Comps", "Combined estimation"])#, "Market distributions", "Rexy"])
23
 
24
+ distances_matrix = np.load('all_data_with_market.npy')
25
+ df_properties = pd.read_csv("all_data_with_market.csv", encoding='utf-8')
26
 
27
 
28
  # update the values of date and price of the historical lease to today date and nan value for price
29
  row_index = (df_properties[df_properties['google_ola'] == st.session_state['user_select_value']].index)[0]
30
+ df_properties.loc[row_index, ["months_since", "rent_combined", "execution_date"]] = [0, 0, None]
31
+ first_row_coords = (df_properties.loc[row_index, 'lat'],
32
+ df_properties.loc[row_index, 'long'])
33
 
34
  # user's filter for property size is a range in percentage around picked property
35
  min_size = (100 + st.session_state['min_property_size_perc']) / 100 * st.session_state['building_sf']
 
40
  lease_max_size = (100 + st.session_state['max_property_lease_size_perc']) / 100 * st.session_state['rented_sf']
41
 
42
  #apply all filters
43
+ 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['market_costar'] == st.session_state['market_val'])
 
44
  df_properties_filtered = df_properties[mask]
45
 
46
  # create distances matrix for remaining rows
47
+ filltered_rows_embeding = distances_matrix[mask]
48
+ selected_row_embeding = distances_matrix[row_index]
49
+ distances_to_properties = np.linalg.norm(filltered_rows_embeding - selected_row_embeding, axis=1)
50
+ df_properties_filtered["score_pred"] = distances_to_properties
51
+ reordered_df_properties_filtered = df_properties_filtered.sort_values("score_pred", ascending=False)
52
 
 
53
  df_properties_filtered = df_properties_filtered.reset_index()
 
 
 
 
 
 
 
 
 
 
54
  reordered_df_properties_filtered['distance_from_first (km)'] = reordered_df_properties_filtered.apply(calculate_distance, axis=1)
55
 
56