Skip to content

Commit 7df87bb

Browse files
committed
capturing transformed names so that we can get it to understand feature importance
1 parent c916211 commit 7df87bb

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

sklearn_pandas/dataframe_mapper.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ def __init__(self, features, default=False, sparse=False, df_out=False):
6565
self.default = _build_transformer(default)
6666
self.sparse = sparse
6767
self.df_out = df_out
68+
self.transformed_names_ = []
69+
6870
if (df_out and (sparse or default)):
6971
raise ValueError("Can not use df_out with sparse or default")
7072

@@ -187,7 +189,7 @@ def transform(self, X):
187189
X the data to transform
188190
"""
189191
extracted = []
190-
index = []
192+
self.transformed_names_ = []
191193
for columns, transformers in self.features:
192194
# columns could be a string or list of
193195
# strings; we don't care because pandas
@@ -196,8 +198,8 @@ def transform(self, X):
196198
if transformers is not None:
197199
Xt = transformers.transform(Xt)
198200
extracted.append(_handle_feature(Xt))
199-
if self.df_out:
200-
index = index + self.get_names(columns, transformers, Xt)
201+
202+
self.transformed_names_ += self.get_names(columns, transformers, Xt)
201203

202204
# handle features not explicitly selected
203205
if self.default is not False:
@@ -206,7 +208,7 @@ def transform(self, X):
206208
if self.default is not None:
207209
Xt = self.default.transform(Xt)
208210
extracted.append(_handle_feature(Xt))
209-
211+
self.transformed_names_ += self.get_names(unsel_cols, self.default, Xt)
210212

211213
# combine the feature outputs into one array.
212214
# at this point we lose track of which features
@@ -227,4 +229,4 @@ def transform(self, X):
227229
if not self.df_out:
228230
return stacked
229231

230-
return pd.DataFrame(stacked, columns=index)
232+
return pd.DataFrame(stacked, columns=self.transformed_names_)

0 commit comments

Comments
 (0)