2024-11-25 14:01:09 +03:00
|
|
|
import pandas as pd
|
|
|
|
|
|
|
|
|
|
#FIXME: костыль для выключения предупреждения "replace deprecated". Потом надо поправить.
|
|
|
|
|
pd.set_option('future.no_silent_downcasting', True)
|
|
|
|
|
|
2024-12-05 13:18:53 +03:00
|
|
|
from utils.base.base import BaseDataConverter
|
2024-11-25 14:01:09 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class DataConverter(BaseDataConverter):
|
|
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
def _replace_bool(dataframe: pd.DataFrame) -> pd.DataFrame:
|
|
|
|
|
bool_columns = dataframe.columns[dataframe.isin([True, False]).any()]
|
|
|
|
|
dataframe[bool_columns] = dataframe[bool_columns].replace({True: 1, False: 0})
|
|
|
|
|
return dataframe
|
|
|
|
|
|
|
|
|
|
def convert_data(self, files: list[str]) -> None:
|
|
|
|
|
dataframes = [pd.read_csv(file) for file in files]
|
|
|
|
|
converted_dataframes = list(map(self._replace_bool, dataframes))
|
|
|
|
|
self._mediator.notify(self, converted_dataframes)
|