Skip to content
Prev Previous commit
Next Next commit
make **kw explicit
  • Loading branch information
jbrockmendel committed Jan 3, 2019
commit d26f7731686e258aa0fefd4eacb257aa9699f9d8
20 changes: 11 additions & 9 deletions pandas/core/internals/blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1453,7 +1453,6 @@ def quantile(self, qs, interpolation='linear', axis=0):
-------
Block
"""
kw = {'interpolation': interpolation}
values = self.get_values()
values, _ = self._try_coerce_args(values, values)

Expand All @@ -1476,7 +1475,8 @@ def quantile(self, qs, interpolation='linear', axis=0):
mask = isna(self.values)
result = _nanpercentile(values, np.array(qs) * 100,
axis=axis, na_value=self._na_value,
mask=mask, ndim=self.ndim, **kw)
mask=mask, ndim=self.ndim,
interpolation=interpolation)

result = np.array(result, copy=False)
if self.ndim > 1:
Expand Down Expand Up @@ -3327,7 +3327,7 @@ def _putmask_preserve(nv, n):


# TODO: belongs elsewhere?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move to nanops

def _nanpercentile1D(values, mask, q, na_value, **kw):
def _nanpercentile1D(values, mask, q, na_value, interpolation):
# mask is Union[ExtensionArray, ndarray]
values = values[~mask]

Expand All @@ -3338,23 +3338,25 @@ def _nanpercentile1D(values, mask, q, na_value, **kw):
return np.array([na_value] * len(q),
dtype=values.dtype)

return np.percentile(values, q, **kw)
return np.percentile(values, q, interpolation=interpolation)


def _nanpercentile(values, q, axis, na_value, mask, ndim, **kw):
def _nanpercentile(values, q, axis, na_value, mask, ndim, interpolation):
if not lib.is_scalar(mask) and mask.any():
if ndim == 1:
return _nanpercentile1D(values, mask, q, na_value, **kw)
return _nanpercentile1D(values, mask, q, na_value,
interpolation=interpolation)
else:
# for nonconsolidatable blocks mask is 1D, but values 2D
if mask.ndim < values.ndim:
mask = mask.reshape(values.shape)
if axis == 0:
values = values.T
mask = mask.T
result = [_nanpercentile1D(val, m, q, na_value, **kw) for (val, m)
in zip(list(values), list(mask))]
result = [_nanpercentile1D(val, m, q, na_value,
interpolation=interpolation)
for (val, m) in zip(list(values), list(mask))]
result = np.array(result, dtype=values.dtype, copy=False).T
return result
else:
return np.percentile(values, q, axis=axis, **kw)
return np.percentile(values, q, axis=axis, interpolation=interpolation)