From bbb9ce1641a92c13948754a7949751b05ebfa068 Mon Sep 17 00:00:00 2001 From: Julian Quick Date: Tue, 22 Mar 2016 14:13:29 -0600 Subject: [PATCH] Verbose message: which fields have impropper data types A more verbose error message letting the user know which fields have impropper data types --- python-package/xgboost/core.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/python-package/xgboost/core.py b/python-package/xgboost/core.py index 971d0a95b..80d171326 100644 --- a/python-package/xgboost/core.py +++ b/python-package/xgboost/core.py @@ -144,7 +144,8 @@ def _maybe_pandas_data(data, feature_names, feature_types): data_dtypes = data.dtypes if not all(dtype.name in PANDAS_DTYPE_MAPPER for dtype in data_dtypes): - raise ValueError('DataFrame.dtypes for data must be int, float or bool') + bad_fields = [data.columns[i] for i, dtype in enumerate(data_dtypes) if dtype.name not in PANDAS_DTYPE_MAPPER ] + raise ValueError('DataFrame.dtypes for data must be int, float or bool.\nDid not expect the data types in fie lds '+', '.join(bad_fields)) if feature_names is None: feature_names = data.columns.format()