fix: дублирующиеся колонки csv файлов теперь удаляются

This commit is contained in:
Andrew 2025-02-05 20:04:47 +03:00
parent df365d14ec
commit a408710b9e

View File

@ -16,12 +16,16 @@ class DataConverter(BaseDataConverter):
@staticmethod @staticmethod
def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame: def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame:
try: 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}) dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0})
return dataframe return dataframe
except: except:
# TODO: Обработка исключений! # TODO: Обработка исключений!
# TODO: Осмысленное сообщение в лог. Без traceback и прочего подобного. # 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 return None
@staticmethod @staticmethod
@ -41,10 +45,18 @@ class DataConverter(BaseDataConverter):
fixed_col = correct_mapping.get(col.lower(), col) fixed_col = correct_mapping.get(col.lower(), col)
new_columns.append(fixed_col) new_columns.append(fixed_col)
dataframe.columns = new_columns dataframe.columns = new_columns
# Удаляем повторяющиеся столбцы, оставляя только первое вхождение
dataframe = dataframe.loc[:, ~dataframe.columns.duplicated()]
return dataframe return dataframe
except: except:
# TODO: Обработка исключений! # TODO: Обработка исключений!
# TODO: Осмысленное сообщение в лог. Без traceback и прочего подобного. # 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 return None
def convert_data(self, files: list[str]) -> None: def convert_data(self, files: list[str]) -> None: