diff --git a/src/controller/converter.py b/src/controller/converter.py index 53525fd..1624052 100644 --- a/src/controller/converter.py +++ b/src/controller/converter.py @@ -16,12 +16,16 @@ class DataConverter(BaseDataConverter): @staticmethod def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame: try: - bool_columns = dataframe.columns[dataframe.isin([True, False]).any()] + bool_columns = dataframe.columns[dataframe.isin([True, False]).all()] dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0}) return dataframe except: # TODO: Обработка исключений! # TODO: Осмысленное сообщение в лог. Без traceback и прочего подобного. + tb = sys.exc_info()[2] + tbinfo = traceback.format_tb(tb)[0] + pymsg = "Traceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) + logger.error(pymsg) return None @staticmethod @@ -41,10 +45,18 @@ class DataConverter(BaseDataConverter): fixed_col = correct_mapping.get(col.lower(), col) new_columns.append(fixed_col) dataframe.columns = new_columns + # Удаляем повторяющиеся столбцы, оставляя только первое вхождение + dataframe = dataframe.loc[:, ~dataframe.columns.duplicated()] + return dataframe except: # TODO: Обработка исключений! # TODO: Осмысленное сообщение в лог. Без traceback и прочего подобного. + tb = sys.exc_info()[2] + tbinfo = traceback.format_tb(tb)[0] + pymsg = "Traceback info:\n" + tbinfo + "\nError Info:\n" + str(sys.exc_info()[1]) + # TODO: Осмысленное сообщение в лог. Без traceback и прочего подобного. + logger.error(pymsg) return None def convert_data(self, files: list[str]) -> None: