BUG? Can construct constant Series and DataFrame, but not Panel or Panel4D · Issue #8285 · pandas-dev/pandas (original) (raw)

Is it accidental that the Series and DataFrame constructors accept a single number for data, but the Panel and Panel4D constructors do not?

In [182]: from pandas import Series, DataFrame, Panel, Panel4D

In [183]: Series(1., index=range(2))
Out[183]:
0    1
1    1
dtype: float64

In [184]: DataFrame(1., index=range(2), columns=range(2))
Out[184]:
   0  1
0  1  1
1  1  1

In [185]: Panel(1., items=range(2), major_axis=range(2), minor_axis=range(2))
---------------------------------------------------------------------------
PandasError                               Traceback (most recent call last)
<ipython-input-185-89f6618b848f> in <module>()
----> 1 Panel(1., items=range(2), major_axis=range(2), minor_axis=range(2))

C:\Python34\lib\site-packages\pandas\core\panel.py in __init__(self, data, items, major_axis, minor_axis, copy, dtype)
    133                  copy=False, dtype=None):
    134         self._init_data(data=data, items=items, major_axis=major_axis,
--> 135                         minor_axis=minor_axis, copy=copy, dtype=dtype)
    136
    137     def _init_data(self, data, copy, dtype, **kwargs):

C:\Python34\lib\site-packages\pandas\core\panel.py in _init_data(self, data, copy, dtype, **kwargs)
    161             dtype = None
    162         else:  # pragma: no cover
--> 163             raise PandasError('Panel constructor not properly called!')
    164
    165         NDFrame.__init__(self, mgr, axes=axes, copy=copy, dtype=dtype)

PandasError: Panel constructor not properly called!

In [186]: Panel4D(1., labels=range(2), items=range(2), major_axis=range(2), minor_axis=range(2))
---------------------------------------------------------------------------
PandasError                               Traceback (most recent call last)
<ipython-input-187-8f22d9107a3e> in <module>()
----> 1 Panel4D(1., labels=range(2), items=range(2), major_axis=range(2), minor_axis=range(2))

C:\Python34\lib\site-packages\pandas\core\panel4d.py in panel4d_init(self, data, labels, items, major_axis, minor_axis, copy, dtype)
     37     self._init_data(data=data, labels=labels, items=items,
     38                     major_axis=major_axis, minor_axis=minor_axis,
---> 39                     copy=copy, dtype=dtype)
     40
     41 Panel4D.__init__ = panel4d_init

C:\Python34\lib\site-packages\pandas\core\panel.py in _init_data(self, data, copy, dtype, **kwargs)
    161             dtype = None
    162         else:  # pragma: no cover
--> 163             raise PandasError('Panel constructor not properly called!')
    164
    165         NDFrame.__init__(self, mgr, axes=axes, copy=copy, dtype=dtype)

PandasError: Panel constructor not properly called!