Skip to content

Commit 43acefc

Browse files
committed
ENH: add fill_value to asfreq pandas-dev#14591
1 parent bee50a4 commit 43acefc

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
@@ -3983,7 +3983,7 @@ def groupby(self, by=None, axis=0, level=None, as_index=True, sort=True,
39833983
sort=sort, group_keys=group_keys, squeeze=squeeze,
39843984
**kwargs)
39853985

3986-
def asfreq(self, freq, method=None, how=None, normalize=False):
3986+
def asfreq(self, freq, method=None, how=None, normalize=False, fill_value=None):
39873987
"""
39883988
Convert TimeSeries to specified frequency.
39893989
@@ -4014,7 +4014,7 @@ def asfreq(self, freq, method=None, how=None, normalize=False):
40144014
<http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases>`__.
40154015
"""
40164016
from pandas.tseries.resample import asfreq
4017-
return asfreq(self, freq, method=method, how=how, normalize=normalize)
4017+
return asfreq(self, freq, method=method, how=how, normalize=normalize, fill_value=fill_value)
40184018

40194019
def at_time(self, time, asof=False):
40204020
"""
@@ -4060,7 +4060,7 @@ def between_time(self, start_time, end_time, include_start=True,
40604060

40614061
def resample(self, rule, how=None, axis=0, fill_method=None, closed=None,
40624062
label=None, convention='start', kind=None, loffset=None,
4063-
limit=None, base=0, on=None, level=None, fill_value=None):
4063+
limit=None, base=0, on=None, level=None):
40644064
"""
40654065
Convenience method for frequency conversion and resampling of time
40664066
series. Object must have a datetime-like index (DatetimeIndex,
@@ -4095,11 +4095,6 @@ def resample(self, rule, how=None, axis=0, fill_method=None, closed=None,
40954095
40964096
.. versionadded:: 0.19.0
40974097
4098-
fill_value: scalar, optional
4099-
Value to use for missing values, applied before resampling
4100-
4101-
.. version added:: 0.20.0
4102-
41034098
To learn more about the offset strings, please see `this link
41044099
<http://pandas.pydata.org/pandas-docs/stable/timeseries.html#offset-aliases>`__.
41054100
@@ -4204,10 +4199,6 @@ def resample(self, rule, how=None, axis=0, fill_method=None, closed=None,
42044199
from pandas.tseries.resample import (resample,
42054200
_maybe_process_deprecations)
42064201
axis = self._get_axis_number(axis)
4207-
4208-
if(fill_value is not None):
4209-
self = self.fillna(fill_value)
4210-
42114202
r = resample(self, freq=rule, label=label, closed=closed,
42124203
axis=axis, kind=kind, loffset=loffset,
42134204
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)