Initializing category with single value raises AttributeError · Issue #12336 · pandas-dev/pandas (original) (raw)

    In [2]: pd.Series([0,0,0], dtype="category")
    Out[2]: 
    0    0
    1    0
    2    0
    dtype: category
    Categories (1, int64): [0]

    In [3]: pd.Series(0, index=range(3), dtype="category")
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-3-2c1d7a241071> in <module>()
    ----> 1 pd.Series(0, index=range(3), dtype="category")

    /home/nobackup/repo/pandas/pandas/core/series.pyc in __init__(self, data, index, dtype, name, copy, fastpath)
        224             else:
        225                 data = _sanitize_array(data, index, dtype, copy,
    --> 226                                        raise_cast_failure=True)
        227 
        228                 data = SingleBlockManager(data, index, fastpath=True)

    /home/nobackup/repo/pandas/pandas/core/series.pyc in _sanitize_array(data, index, dtype, copy, raise_cast_failure)
       2961             if len(subarr) != len(index) and len(subarr) == 1:
       2962                 subarr = create_from_value(subarr[0], index,
    -> 2963                                            subarr.dtype)
       2964 
       2965     elif subarr.ndim > 1:

    /home/nobackup/repo/pandas/pandas/core/series.pyc in create_from_value(value, index, dtype)
       2929         else:
       2930             if not isinstance(dtype, (np.dtype, type(np.dtype))):
    -> 2931                 dtype = dtype.dtype
       2932             subarr = np.empty(len(index), dtype=dtype)
       2933             subarr.fill(value)

    AttributeError: 'CategoricalDtype' object has no attribute 'dtype'

(Not a particularly brilliant use of categories, but they can then be concatenated with others.)