-
- Notifications
You must be signed in to change notification settings - Fork 19.4k
Closed
Closed
Copy link
Labels
Needs TestsUnit test(s) needed to prevent regressionsUnit test(s) needed to prevent regressionsSparseSparse Data TypeSparse Data Typegood first issue
Milestone
Description
Tried to simplify Block.quantile by arranging for it to only have to handle 2D case by having Series.quantile dispatch to DataFrame implementation. Ended up getting failures in pandas/tests/series/test_quantile.py test_quantile_sparse
ser = pd.Series([0., None, 1., 2.], dtype='Sparse[float]') df = pd.DataFrame(ser) >>> ser.quantile(0.5) 1.0 >>> ser.quantile([0.5]) 0.5 1.0 dtype: float64 >>> df.quantile(0.5) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pandas/core/frame.py", line 7760, in quantile transposed=is_transposed) File "pandas/core/internals/managers.py", line 500, in quantile return self.reduction('quantile', **kwargs) File "pandas/core/internals/managers.py", line 432, in reduction axe, block = getattr(b, f)(axis=axis, axes=self.axes, **kwargs) File "pandas/core/internals/blocks.py", line 1530, in quantile result = _nanpercentile(values, qs * 100, axis=axis, **kw) File "pandas/core/internals/blocks.py", line 1484, in _nanpercentile mask = mask.reshape(values.shape) AttributeError: 'SparseArray' object has no attribute 'reshape' >>> df.quantile([0.5]) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pandas/core/frame.py", line 7760, in quantile transposed=is_transposed) File "pandas/core/internals/managers.py", line 500, in quantile return self.reduction('quantile', **kwargs) File "pandas/core/internals/managers.py", line 432, in reduction axe, block = getattr(b, f)(axis=axis, axes=self.axes, **kwargs) File "pandas/core/internals/blocks.py", line 1511, in quantile axis=axis, **kw) File "pandas/core/internals/blocks.py", line 1484, in _nanpercentile mask = mask.reshape(values.shape) AttributeError: 'SparseArray' object has no attribute 'reshape' datetime64[ns, tz] breaks in a slightly different way (presumably all ExtensionBlocks will fail):
dti = pd.date_range('2016-01-01', periods=3, tz='US/Pacific') ser = pd.Series(dti) df = pd.DataFrame(ser) >>> df.quantile(0.5) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pandas/core/frame.py", line 7760, in quantile transposed=is_transposed) File "pandas/core/internals/managers.py", line 500, in quantile return self.reduction('quantile', **kwargs) File "pandas/core/internals/managers.py", line 473, in reduction values = _concat._concat_compat([b.values for b in blocks]) File "pandas/core/dtypes/concat.py", line 174, in _concat_compat return np.concatenate(to_concat, axis=axis) ValueError: need at least one array to concatenate >>> df.quantile([0.5]) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pandas/core/frame.py", line 7760, in quantile transposed=is_transposed) File "pandas/core/internals/managers.py", line 500, in quantile return self.reduction('quantile', **kwargs) File "pandas/core/internals/managers.py", line 473, in reduction values = _concat._concat_compat([b.values for b in blocks]) File "pandas/core/dtypes/concat.py", line 174, in _concat_compat return np.concatenate(to_concat, axis=axis) ValueError: need at least one array to concatenate xref #24583
Metadata
Metadata
Assignees
Labels
Needs TestsUnit test(s) needed to prevent regressionsUnit test(s) needed to prevent regressionsSparseSparse Data TypeSparse Data Typegood first issue