Skip to content

Commit d8a2f30

Browse files
committed
Merge pull request #10379 from rekcahpassyla/empty_series_with_freq_setitem2
Check for size=0 before setting item
2 parents 7636c2c + 7da7c97 commit d8a2f30

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

doc/source/whatsnew/v0.17.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,4 @@ Performance Improvements
5959
Bug Fixes
6060
~~~~~~~~~
6161
- Bug in ``DataFrame.apply`` when function returns categorical series. (:issue:`9573`)
62+
- Bug in ``pd.Series`` when setting a value on an empty ``Series`` whose index has a frequency. (:issue:`10193`)

pandas/tests/test_series.py

+12
Original file line numberDiff line numberDiff line change
@@ -1480,6 +1480,18 @@ def test_setitem(self):
14801480
expected = self.series.append(app)
14811481
assert_series_equal(s, expected)
14821482

1483+
# Test for issue #10193
1484+
key = pd.Timestamp('2012-01-01')
1485+
series = pd.Series()
1486+
series[key] = 47
1487+
expected = pd.Series(47, [key])
1488+
assert_series_equal(series, expected)
1489+
1490+
series = pd.Series([], pd.DatetimeIndex([], freq='D'))
1491+
series[key] = 47
1492+
expected = pd.Series(47, pd.DatetimeIndex([key], freq='D'))
1493+
assert_series_equal(series, expected)
1494+
14831495
def test_setitem_dtypes(self):
14841496

14851497
# change dtypes

pandas/tseries/index.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1497,7 +1497,7 @@ def insert(self, loc, item):
14971497
if zone != izone:
14981498
raise ValueError('Passed item and index have different timezone')
14991499
# check freq can be preserved on edge cases
1500-
if self.freq is not None:
1500+
if self.size and self.freq is not None:
15011501
if (loc == 0 or loc == -len(self)) and item + self.freq == self[0]:
15021502
freq = self.freq
15031503
elif (loc == len(self)) and item - self.freq == self[-1]:

0 commit comments

Comments
 (0)