Skip to content

Commit 4df51cf

Browse files
committed
ENH: add fill_value to asfreq pandas-dev#14591
1 parent a0bce9f commit 4df51cf

File tree

2 files changed

+9
-18
lines changed

2 files changed

+9
-18
lines changed

pandas/core/generic.py

+3-12
Original file line numberDiff line numberDiff line change
@@ -3990,7 +3990,7 @@ def groupby(self, by=None, axis=0, level=None, as_index=True, sort=True,
39903990
sort=sort, group_keys=group_keys, squeeze=squeeze,
39913991
**kwargs)
39923992

3993-
def asfreq(self, freq, method=None, how=None, normalize=False):
3993+
def asfreq(self, freq, method=None, how=None, normalize=False, fill_value=None):
39943994
"""
39953995
Convert TimeSeries to specified frequency.
39963996
@@ -4021,7 +4021,7 @@ def asfreq(self, freq, method=None, how=None, normalize=False):
40214021
<http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases>`__.
40224022
"""
40234023
from pandas.tseries.resample import asfreq
4024-
return asfreq(self, freq, method=method, how=how, normalize=normalize)
4024+
return asfreq(self, freq, method=method, how=how, normalize=normalize, fill_value=fill_value)
40254025

40264026
def at_time(self, time, asof=False):
40274027
"""
@@ -4067,7 +4067,7 @@ def between_time(self, start_time, end_time, include_start=True,
40674067

40684068
def resample(self, rule, how=None, axis=0, fill_method=None, closed=None,
40694069
label=None, convention='start', kind=None, loffset=None,
4070-
limit=None, base=0, on=None, level=None, fill_value=None):
4070+
limit=None, base=0, on=None, level=None):
40714071
"""
40724072
Convenience method for frequency conversion and resampling of time
40734073
series. Object must have a datetime-like index (DatetimeIndex,
@@ -4102,11 +4102,6 @@ def resample(self, rule, how=None, axis=0, fill_method=None, closed=None,
41024102
41034103
.. versionadded:: 0.19.0
41044104
4105-
fill_value: scalar, optional
4106-
Value to use for missing values, applied before resampling
4107-
4108-
.. version added:: 0.20.0
4109-
41104105
To learn more about the offset strings, please see `this link
41114106
<http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases>`__.
41124107
@@ -4211,10 +4206,6 @@ def resample(self, rule, how=None, axis=0, fill_method=None, closed=None,
42114206
from pandas.tseries.resample import (resample,
42124207
_maybe_process_deprecations)
42134208
axis = self._get_axis_number(axis)
4214-
4215-
if(fill_value is not None):
4216-
self = self.fillna(fill_value)
4217-
42184209
r = resample(self, freq=rule, label=label, closed=closed,
42194210
axis=axis, kind=kind, loffset=loffset,
42204211
convention=convention,

pandas/tseries/resample.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -499,12 +499,12 @@ def interpolate(self, method='linear', axis=0, limit=None, inplace=False,
499499
limit_direction=limit_direction,
500500
downcast=downcast, **kwargs)
501501

502-
def asfreq(self):
502+
def asfreq(self, **kwargs):
503503
"""
504504
return the values at the new freq,
505505
essentially a reindex with (no filling)
506506
"""
507-
return self._upsample('asfreq')
507+
return self._upsample('asfreq', **kwargs)
508508

509509
def std(self, ddof=1, *args, **kwargs):
510510
"""
@@ -704,7 +704,7 @@ def _adjust_binner_for_upsample(self, binner):
704704
binner = binner[:-1]
705705
return binner
706706

707-
def _upsample(self, method, limit=None):
707+
def _upsample(self, method, limit=None, fill_value=None):
708708
"""
709709
method : string {'backfill', 'bfill', 'pad',
710710
'ffill', 'asfreq'} method for upsampling
@@ -736,7 +736,7 @@ def _upsample(self, method, limit=None):
736736
result.index = res_index
737737
else:
738738
result = obj.reindex(res_index, method=method,
739-
limit=limit)
739+
limit=limit, fill_value=fill_value)
740740

741741
return self._wrap_result(result)
742742

@@ -1333,7 +1333,7 @@ def _adjust_dates_anchored(first, last, offset, closed='right', base=0):
13331333
Timestamp(lresult).tz_localize(last_tzinfo, ambiguous=last_dst))
13341334

13351335

1336-
def asfreq(obj, freq, method=None, how=None, normalize=False):
1336+
def asfreq(obj, freq, method=None, how=None, normalize=False, fill_value=None):
13371337
"""
13381338
Utility frequency conversion method for Series/DataFrame
13391339
"""
@@ -1353,7 +1353,7 @@ def asfreq(obj, freq, method=None, how=None, normalize=False):
13531353
return obj.copy()
13541354
dti = date_range(obj.index[0], obj.index[-1], freq=freq)
13551355
dti.name = obj.index.name
1356-
rs = obj.reindex(dti, method=method)
1356+
rs = obj.reindex(dti, method=method, fill_value=fill_value)
13571357
if normalize:
13581358
rs.index = rs.index.normalize()
13591359
return rs

0 commit comments

Comments
 (0)