VEDAGI1 commited on
Commit
72ba172
·
verified ·
1 Parent(s): c84a11b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -0
app.py CHANGED
@@ -728,6 +728,7 @@ CRITICAL RULES:
728
  11. **CONVERT STRINGS BEFORE MATH:** Always clean and convert strings to float/int BEFORE performing arithmetic. Use `re.sub(r'[^\\d.]', '', value)` to strip currency symbols ($), percentage signs (%), commas, and other non-numeric characters. For ranges like "8–10", split first, clean each part, convert to float, then calculate: `parts = text.split('–'); avg = (float(re.sub(r'[^\\d.]', '', parts[0])) + float(re.sub(r'[^\\d.]', '', parts[1]))) / 2`
729
  12. **SCALAR VS VECTORIZED:** When applying a cleaning function to DataFrame columns, use `.apply()` for element-wise operations: `df['col'].apply(clean_func)`. Do NOT pass a Series to a function expecting a single value. For a single extracted value, use `.iloc[0]` to get the scalar before processing.
730
  13. **COLUMN AVAILABILITY AFTER MERGE:** After merging DataFrames, only columns explicitly included in the merge will be available. If you need 'city' later, include it in the initial selection: `df[['facility_name', 'city', 'latitude']]`. Before accessing any column, verify it exists in the DataFrame or was included in the merge.
 
731
 
732
  --- USER'S SCENARIO ---
733
  {user_scenario}
 
728
  11. **CONVERT STRINGS BEFORE MATH:** Always clean and convert strings to float/int BEFORE performing arithmetic. Use `re.sub(r'[^\\d.]', '', value)` to strip currency symbols ($), percentage signs (%), commas, and other non-numeric characters. For ranges like "8–10", split first, clean each part, convert to float, then calculate: `parts = text.split('–'); avg = (float(re.sub(r'[^\\d.]', '', parts[0])) + float(re.sub(r'[^\\d.]', '', parts[1]))) / 2`
729
  12. **SCALAR VS VECTORIZED:** When applying a cleaning function to DataFrame columns, use `.apply()` for element-wise operations: `df['col'].apply(clean_func)`. Do NOT pass a Series to a function expecting a single value. For a single extracted value, use `.iloc[0]` to get the scalar before processing.
730
  13. **COLUMN AVAILABILITY AFTER MERGE:** After merging DataFrames, only columns explicitly included in the merge will be available. If you need 'city' later, include it in the initial selection: `df[['facility_name', 'city', 'latitude']]`. Before accessing any column, verify it exists in the DataFrame or was included in the merge.
731
+ 14. **BROADCASTING SCALAR TO ALL ROWS:** To add a single value to all rows in a DataFrame, do NOT use merge. Instead, extract the scalar first, then assign directly: `value = other_df.loc[condition, 'col'].iloc[0]; df['new_col'] = value`. This broadcasts the scalar to all rows.
732
 
733
  --- USER'S SCENARIO ---
734
  {user_scenario}