Skip to content

Commit 034474a

Browse files
committed
BUG: Set frequency for empty Series; fixes #14320
Add test to verify frequency for empty series Update test to compare empty series behaviour against normal series Add entry in whatsnew 0.20.0
1 parent 96b364a commit 034474a

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

doc/source/whatsnew/v0.20.0.txt

+2
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,5 @@ Performance Improvements
7979

8080
Bug Fixes
8181
~~~~~~~~~
82+
83+
- Bug in ``asfreq``, where frequency wasn't set for empty series (:issue:`14320`)

pandas/tests/frame/test_timeseries.py

+5
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,11 @@ def test_asfreq_datetimeindex(self):
323323
ts = df['A'].asfreq('B')
324324
tm.assertIsInstance(ts.index, DatetimeIndex)
325325

326+
def test_asfreq_datetimeindex_empty_series(self):
327+
empty_series = Series(index=pd.DatetimeIndex([]), data=[]).asfreq('H')
328+
normal_series = Series(index=pd.DatetimeIndex(["2016-09-29 11:00"]), data=[3]).asfreq('H')
329+
self.assertEqual(empty_series.index.freq, normal_series.index.freq)
330+
326331
def test_first_last_valid(self):
327332
N = len(self.frame.index)
328333
mat = randn(N)

pandas/tseries/resample.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1344,7 +1344,10 @@ def asfreq(obj, freq, method=None, how=None, normalize=False):
13441344
return new_obj
13451345
else:
13461346
if len(obj.index) == 0:
1347-
return obj.copy()
1347+
new_index = obj.index._shallow_copy(freq=to_offset(freq))
1348+
new_obj = obj.copy()
1349+
new_obj.index = new_index
1350+
return new_obj
13481351
dti = date_range(obj.index[0], obj.index[-1], freq=freq)
13491352
dti.name = obj.index.name
13501353
rs = obj.reindex(dti, method=method)

0 commit comments

Comments
 (0)