diff --git a/python-package/xgboost/data.py b/python-package/xgboost/data.py index 7df768934c2b..48d1884ef12c 100644 --- a/python-package/xgboost/data.py +++ b/python-package/xgboost/data.py @@ -227,15 +227,13 @@ def _transform_pandas_df( meta_type=None, ): import pandas as pd - from pandas import MultiIndex, Int64Index, RangeIndex from pandas.api.types import is_sparse, is_categorical_dtype - data_dtypes = data.dtypes if not all(dtype.name in _pandas_dtype_mapper or is_sparse(dtype) or (is_categorical_dtype(dtype) and enable_categorical) - for dtype in data_dtypes): + for dtype in data.dtypes): bad_fields = [ - str(data.columns[i]) for i, dtype in enumerate(data_dtypes) + str(data.columns[i]) for i, dtype in enumerate(data.dtypes) if dtype.name not in _pandas_dtype_mapper ] @@ -246,11 +244,11 @@ def _transform_pandas_df( # handle feature names if feature_names is None and meta is None: - if isinstance(data.columns, MultiIndex): + if isinstance(data.columns, pd.MultiIndex): feature_names = [ ' '.join([str(x) for x in i]) for i in data.columns ] - elif isinstance(data.columns, (Int64Index, RangeIndex)): + elif isinstance(data.columns, (pd.Int64Index, pd.RangeIndex)): feature_names = list(map(str, data.columns)) else: feature_names = data.columns.format() @@ -258,7 +256,7 @@ def _transform_pandas_df( # handle feature types if feature_types is None and meta is None: feature_types = [] - for i, dtype in enumerate(data_dtypes): + for i, dtype in enumerate(data.dtypes): if is_sparse(dtype): feature_types.append(_pandas_dtype_mapper[dtype.subtype.name]) elif is_categorical_dtype(dtype) and enable_categorical: @@ -269,7 +267,7 @@ def _transform_pandas_df( # handle categorical codes. transformed = pd.DataFrame() if enable_categorical: - for i, dtype in enumerate(data_dtypes): + for i, dtype in enumerate(data.dtypes): if is_categorical_dtype(dtype): transformed[data.columns[i]] = data[data.columns[i]].cat.codes else: