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!