Validate the loaded data Returns: Tuple of (is_valid, list_of_issues)
(self)
| 110 | return self.metadata |
| 111 | |
| 112 | def validate_data(self) -> Tuple[bool, list]: |
| 113 | """ |
| 114 | Validate the loaded data |
| 115 | |
| 116 | Returns: |
| 117 | Tuple of (is_valid, list_of_issues) |
| 118 | """ |
| 119 | issues = [] |
| 120 | |
| 121 | if self.data is None: |
| 122 | return False, ["No data loaded"] |
| 123 | |
| 124 | # Check for empty dataset |
| 125 | if len(self.data) == 0: |
| 126 | issues.append("Dataset is empty") |
| 127 | |
| 128 | # Check for columns with all missing values |
| 129 | all_missing = self.data.columns[self.data.isnull().all()].tolist() |
| 130 | if all_missing: |
| 131 | issues.append(f"Columns with all missing values: {all_missing}") |
| 132 | |
| 133 | # Check for duplicate rows |
| 134 | duplicates = self.data.duplicated().sum() |
| 135 | if duplicates > 0: |
| 136 | issues.append(f"Found {duplicates} duplicate rows") |
| 137 | |
| 138 | # Check for columns with single unique value |
| 139 | single_value_cols = [ |
| 140 | col for col in self.data.columns |
| 141 | if self.data[col].nunique() == 1 |
| 142 | ] |
| 143 | if single_value_cols: |
| 144 | issues.append(f"Columns with single value: {single_value_cols}") |
| 145 | |
| 146 | is_valid = len(issues) == 0 |
| 147 | |
| 148 | return is_valid, issues |
nothing calls this directly
no outgoing calls
no test coverage detected