DataFrame constructor fails with extension dtype and columns · Issue #27953 · pandas-dev/pandas (original) (raw)

I think this should be supported.

In [8]: pd.DataFrame(columns=['a'], dtype=pd.CategoricalDtype())

TypeError Traceback (most recent call last) in ----> 1 pd.DataFrame(columns=['a'], dtype=pd.CategoricalDtype())

~/sandbox/pandas/pandas/core/frame.py in init(self, data, index, columns, dtype, copy) 405 ) 406 elif isinstance(data, dict): --> 407 mgr = init_dict(data, index, columns, dtype=dtype) 408 elif isinstance(data, ma.MaskedArray): 409 import numpy.ma.mrecords as mrecords

~/sandbox/pandas/pandas/core/internals/construction.py in init_dict(data, index, columns, dtype) 224 # no obvious "empty" int column 225 if missing.any() and not is_integer_dtype(dtype): --> 226 if dtype is None or np.issubdtype(dtype, np.flexible): 227 # GH#1783 228 nan_dtype = object

~/Envs/pandas-dev/lib/python3.7/site-packages/numpy/core/numerictypes.py in issubdtype(arg1, arg2) 391 """ 392 if not issubclass_(arg1, generic): --> 393 arg1 = dtype(arg1).type 394 if not issubclass_(arg2, generic): 395 arg2_orig = arg2

TypeError: data type not understood

Expected Output

In [10]: pd.DataFrame(columns=['a']).astype('category') Out[10]: Empty DataFrame Columns: [a] Index: []