Skip to content

Commit d6f541d

Browse files
committed
Added quantile method to Resampler
1 parent 2a2d1cf commit d6f541d

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed

doc/source/api.rst

+1
Original file line numberDiff line numberDiff line change
@@ -2352,6 +2352,7 @@ Computations / Descriptive Stats
23522352
Resampler.std
23532353
Resampler.sum
23542354
Resampler.var
2355+
Resampler.quantile
23552356

23562357
Style
23572358
-----

doc/source/whatsnew/v0.24.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ Other Enhancements
182182
- :func:`to_timedelta` now supports iso-formated timedelta strings (:issue:`21877`)
183183
- :class:`Series` and :class:`DataFrame` now support :class:`Iterable` in constructor (:issue:`2193`)
184184
- :class:`DatetimeIndex` gained :attr:`DatetimeIndex.timetz` attribute. Returns local time with timezone information. (:issue:`21358`)
185+
- Added :meth:`Resampler.quantile` (:issue:`15023`).
185186

186187
.. _whatsnew_0240.api_breaking:
187188

pandas/core/resample.py

+12
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,18 @@ def size(self):
749749
result = pd.Series([], index=result.index, dtype='int64')
750750
return result
751751

752+
def quantile(self, q=0.5, **kwargs):
753+
"""
754+
Return value at the given quantile.
755+
756+
Parameters
757+
----------
758+
q : float or array-like, default 0.5 (50% quantile)
759+
760+
.. versionadded:: 0.24.0
761+
"""
762+
return self._downsample('quantile', q=q, **kwargs)
763+
752764

753765
# downsample methods
754766
for method in ['sum', 'prod']:

pandas/tests/test_resample.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
# The various methods we support
4343
downsample_methods = ['min', 'max', 'first', 'last', 'sum', 'mean', 'sem',
44-
'median', 'prod', 'var', 'ohlc']
44+
'median', 'prod', 'var', 'ohlc', 'quantile']
4545
upsample_methods = ['count', 'size']
4646
series_methods = ['nunique']
4747
resample_methods = downsample_methods + upsample_methods + series_methods
@@ -2165,6 +2165,13 @@ def test_resample_datetime_values(self):
21652165
res = df['timestamp'].resample('2D').first()
21662166
tm.assert_series_equal(res, exp)
21672167

2168+
def test_resample_quantile(self):
2169+
# GH 15023
2170+
s = pd.Series(range(20), index=date_range('2016-01-01', periods=20))
2171+
result = s.resample('W').quantile(0.75)
2172+
expected = s.resample('W').agg(lambda x: x.quantile(0.75))
2173+
tm.assert_series_equal(result, expected)
2174+
21682175

21692176
class TestPeriodIndex(Base):
21702177
_index_factory = lambda x: period_range

0 commit comments

Comments
 (0)