def METHOD_NAME(self, header_in_data):
    cols = pd.read_csv(self.cd_path, sep='\t', header=None)
    target_col = np.where(cols[1] == 'Label')[0][0]
    cat_cols = cols[cols[1] == "Categ"][0].values
    X_train, y_train = self.read_file(self.train_path, target_col, header_in_data)
    X_test, y_test = self.read_file(self.test_path, target_col, header_in_data)
    data = pd.concat([X_train, X_test])
    data[cat_cols] = data[cat_cols].apply(lambda x: x.astype('category').cat.codes)
    data = np.array(data).astype('float')
    X_train, X_test = data[:X_train.shape[0]], data[X_train.shape[0]:]
    cat_cols[cat_cols > target_col] = cat_cols[cat_cols > target_col] - 1
    return X_train, y_train, X_test, y_test, cat_cols