|
11 | 11 |
|
12 | 12 |
|
13 | 13 | def plot_crime_perception(enusc_clean): |
| 14 | + _fail_if_only_missing_values(enusc_clean) |
| 15 | + _fail_if_missing_or_empty_columns(enusc_clean) |
| 16 | + |
14 | 17 | crime_columns = { |
15 | 18 | "crime_increase_perception_nation": "Crime Perception - Nation", |
16 | 19 | "crime_increase_perception_commune": "Crime Perception - Commune", |
@@ -45,3 +48,33 @@ def plot_crime_perception(enusc_clean): |
45 | 48 | ) |
46 | 49 |
|
47 | 50 | fig.write_image(i) |
| 51 | + |
| 52 | + |
| 53 | +# Error Handling |
| 54 | + |
| 55 | + |
| 56 | +def _fail_if_missing_or_empty_columns(enusc_clean): |
| 57 | + """Raises an error if required columns are missing.""" |
| 58 | + required_columns = { |
| 59 | + "crime_increase_perception_nation", |
| 60 | + "crime_increase_perception_commune", |
| 61 | + "crime_increase_perception_neighborhood", |
| 62 | + } |
| 63 | + |
| 64 | + missing_columns = required_columns - set(enusc_clean.columns) |
| 65 | + if missing_columns: |
| 66 | + error_msg = f"Missing required columns: {missing_columns}" |
| 67 | + raise ValueError(error_msg) |
| 68 | + |
| 69 | + |
| 70 | +def _fail_if_only_missing_values(enusc_clean): |
| 71 | + """Raises an error if required columns contain only missing values.""" |
| 72 | + required_columns = { |
| 73 | + "crime_increase_perception_nation", |
| 74 | + "crime_increase_perception_commune", |
| 75 | + "crime_increase_perception_neighborhood", |
| 76 | + } |
| 77 | + empty_columns = {col for col in required_columns if enusc_clean[col].dropna().empty} |
| 78 | + if empty_columns: |
| 79 | + error_msg = f"Columns contain only missing values: {empty_columns}" |
| 80 | + raise ValueError(error_msg) |
0 commit comments