|
19 | 19 | from ..utils import Bunch
|
20 | 20 | from ..utils import _safe_indexing
|
21 | 21 | from ..utils import _get_column_indices
|
22 |
| -from ..utils import _determine_key_type |
23 | 22 | from ..utils.metaestimators import _BaseComposition
|
24 | 23 | from ..utils.validation import check_array, check_is_fitted
|
25 | 24 | from ..utils.validation import _deprecate_positional_args
|
@@ -320,12 +319,6 @@ def _validate_remainder(self, X):
|
320 | 319 | "'passthrough', or estimator. '%s' was passed instead" %
|
321 | 320 | self.remainder)
|
322 | 321 |
|
323 |
| - # Make it possible to check for reordered named columns on transform |
324 |
| - self._has_str_cols = any(_determine_key_type(cols) == 'str' |
325 |
| - for cols in self._columns) |
326 |
| - if hasattr(X, 'columns'): |
327 |
| - self._df_columns = X.columns |
328 |
| - |
329 | 322 | self._n_features = X.shape[1]
|
330 | 323 | cols = []
|
331 | 324 | for columns in self._columns:
|
@@ -362,12 +355,12 @@ def get_feature_names(self):
|
362 | 355 | hasattr(column, '__len__') and not len(column)):
|
363 | 356 | continue
|
364 | 357 | if trans == 'passthrough':
|
365 |
| - if hasattr(self, '_df_columns'): |
| 358 | + if self._feature_names_in is not None: |
366 | 359 | if ((not isinstance(column, slice))
|
367 | 360 | and all(isinstance(col, str) for col in column)):
|
368 | 361 | feature_names.extend(column)
|
369 | 362 | else:
|
370 |
| - feature_names.extend(self._df_columns[column]) |
| 363 | + feature_names.extend(self._feature_names_in[column]) |
371 | 364 | else:
|
372 | 365 | indices = np.arange(self._n_features)
|
373 | 366 | feature_names.extend(['x%d' % i for i in indices[column]])
|
@@ -441,7 +434,7 @@ def _fit_transform(self, X, y, func, fitted=False):
|
441 | 434 | message_clsname='ColumnTransformer',
|
442 | 435 | message=self._log_message(name, idx, len(transformers)))
|
443 | 436 | for idx, (name, trans, column, weight) in enumerate(
|
444 |
| - self._iter(fitted=fitted, replace_strings=True), 1)) |
| 437 | + transformers, 1)) |
445 | 438 | except ValueError as e:
|
446 | 439 | if "Expected 2D array, got 1D array instead" in str(e):
|
447 | 440 | raise ValueError(_ERR_MSG_1DCOLUMN) from e
|
@@ -606,9 +599,9 @@ def _sk_visual_block_(self):
|
606 | 599 | transformers = self.transformers
|
607 | 600 | elif hasattr(self, "_remainder"):
|
608 | 601 | remainder_columns = self._remainder[2]
|
609 |
| - if hasattr(self, '_df_columns'): |
| 602 | + if self._feature_names_in is not None: |
610 | 603 | remainder_columns = (
|
611 |
| - self._df_columns[remainder_columns].tolist() |
| 604 | + self._feature_names_in[remainder_columns].tolist() |
612 | 605 | )
|
613 | 606 | transformers = chain(self.transformers,
|
614 | 607 | [('remainder', self.remainder,
|
|
0 commit comments