James McCool
commited on
Commit
·
b8a8ac9
1
Parent(s):
b01e348
Refactor reassess_edge function in reassess_edge.py to improve efficiency by concatenating modified and base frames, simplifying the extraction of updated rows, and enhancing clarity in the logic for processing modified data.
Browse files- global_func/reassess_edge.py +9 -30
global_func/reassess_edge.py
CHANGED
|
@@ -3,8 +3,8 @@ from global_func.predict_dupes import predict_dupes
|
|
| 3 |
|
| 4 |
def reassess_edge(modified_frame: pd.DataFrame, base_frame: pd.DataFrame, maps_dict: dict, site_var: str, type_var: str, Contest_Size: int, strength_var: str, sport_var: str) -> pd.DataFrame:
|
| 5 |
"""
|
| 6 |
-
Reassess edge by
|
| 7 |
-
and then extracting the
|
| 8 |
|
| 9 |
Args:
|
| 10 |
modified_frame: DataFrame with rows that were modified by exposure_spread
|
|
@@ -19,37 +19,16 @@ def reassess_edge(modified_frame: pd.DataFrame, base_frame: pd.DataFrame, maps_d
|
|
| 19 |
Returns:
|
| 20 |
DataFrame: Updated modified_frame with recalculated metrics
|
| 21 |
"""
|
| 22 |
-
#
|
| 23 |
-
|
| 24 |
|
| 25 |
-
#
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
# For each modified row, find and replace the corresponding row in the combined frame
|
| 29 |
-
for idx, modified_row in modified_frame.iterrows():
|
| 30 |
-
# Find the row in combined_frame that matches the player composition
|
| 31 |
-
for combined_idx, combined_row in combined_frame.iterrows():
|
| 32 |
-
if all(modified_row[col] == combined_row[col] for col in player_columns):
|
| 33 |
-
# Replace the row with the modified version
|
| 34 |
-
combined_frame.loc[combined_idx] = modified_row
|
| 35 |
-
break
|
| 36 |
|
| 37 |
# Run predict_dupes on the combined frame
|
| 38 |
updated_combined_frame = predict_dupes(combined_frame, maps_dict, site_var, type_var, Contest_Size, strength_var, sport_var)
|
| 39 |
|
| 40 |
-
# Extract the
|
| 41 |
-
|
| 42 |
-
for idx, modified_row in modified_frame.iterrows():
|
| 43 |
-
for combined_idx, combined_row in updated_combined_frame.iterrows():
|
| 44 |
-
if all(modified_row[col] == combined_row[col] for col in player_columns):
|
| 45 |
-
updated_modified_rows.append(combined_row)
|
| 46 |
-
break
|
| 47 |
|
| 48 |
-
|
| 49 |
-
if updated_modified_rows:
|
| 50 |
-
result_frame = pd.DataFrame(updated_modified_rows)
|
| 51 |
-
result_frame = result_frame.reset_index(drop=True)
|
| 52 |
-
return result_frame
|
| 53 |
-
else:
|
| 54 |
-
# If no matches found, return the original modified_frame
|
| 55 |
-
return modified_frame
|
|
|
|
| 3 |
|
| 4 |
def reassess_edge(modified_frame: pd.DataFrame, base_frame: pd.DataFrame, maps_dict: dict, site_var: str, type_var: str, Contest_Size: int, strength_var: str, sport_var: str) -> pd.DataFrame:
|
| 5 |
"""
|
| 6 |
+
Reassess edge by concatenating modified frame with base frame, running predict_dupes,
|
| 7 |
+
and then extracting the first N rows (where N is the length of modified_frame).
|
| 8 |
|
| 9 |
Args:
|
| 10 |
modified_frame: DataFrame with rows that were modified by exposure_spread
|
|
|
|
| 19 |
Returns:
|
| 20 |
DataFrame: Updated modified_frame with recalculated metrics
|
| 21 |
"""
|
| 22 |
+
# Store the number of rows in the modified frame
|
| 23 |
+
num_modified_rows = len(modified_frame)
|
| 24 |
|
| 25 |
+
# Concatenate the modified frame with the base frame
|
| 26 |
+
combined_frame = pd.concat([modified_frame, base_frame], ignore_index=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
|
| 28 |
# Run predict_dupes on the combined frame
|
| 29 |
updated_combined_frame = predict_dupes(combined_frame, maps_dict, site_var, type_var, Contest_Size, strength_var, sport_var)
|
| 30 |
|
| 31 |
+
# Extract the first N rows (which correspond to our modified frame)
|
| 32 |
+
result_frame = updated_combined_frame.head(num_modified_rows).copy()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
+
return result_frame
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|