fix: дублирующиеся колонки csv файлов теперь удаляются
This commit is contained in:
parent
df365d14ec
commit
a408710b9e
@ -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:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user