From 7bf1b27b1dd9960a8da03e0ba16abd78ea6d945d Mon Sep 17 00:00:00 2001 From: Maxwell Date: Thu, 17 Jun 2021 22:46:35 +0800 Subject: [PATCH] fix ColumnTransformer error when remainder has datetime dtype --- sklearn/compose/_column_transformer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sklearn/compose/_column_transformer.py b/sklearn/compose/_column_transformer.py index ada175c7f32c6..920c4ac00125d 100644 --- a/sklearn/compose/_column_transformer.py +++ b/sklearn/compose/_column_transformer.py @@ -660,7 +660,13 @@ def _hstack(self, Xs): return sparse.hstack(converted_Xs).tocsr() else: Xs = [f.toarray() if sparse.issparse(f) else f for f in Xs] - return np.hstack(Xs) + + # convert to a common dtype explicitly before np.hstack + # detail see issue 20090 + array_dtypes = [x.dtype if hasattr(x, 'dtype') else x.values.dtype + for x in Xs] + common_dtype = np.find_common_type(array_dtypes, []) + return np.hstack([x.astype(common_dtype) for x in Xs]) def _sk_visual_block_(self): if isinstance(self.remainder, str) and self.remainder == 'drop':