-
-
Notifications
You must be signed in to change notification settings - Fork 18.8k
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