Skip to content

Commit a55ded2

Browse files
committed
BUG: close #839, another case where nan may be assigned to int series
1 parent a2ecb0c commit a55ded2

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

pandas/core/series.py

+4
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,10 @@ def _check_bool_indexer(self, key):
555555

556556
def __setslice__(self, i, j, value):
557557
"""Set slice equal to given value(s)"""
558+
if issubclass(self.dtype.type, (np.integer, np.bool_)):
559+
if np.isscalar(value) and isnull(value):
560+
raise ValueError('Cannot assign nan to integer series')
561+
558562
ndarray.__setslice__(self, i, j, value)
559563

560564
def get(self, label, default=None):

pandas/tests/test_series.py

+5
Original file line numberDiff line numberDiff line change
@@ -1158,8 +1158,13 @@ def testme2():
11581158
s = Series([True, True, False, False])
11591159
s[::2] = np.nan
11601160

1161+
def testme3():
1162+
s = Series(np.arange(10))
1163+
s[:5] = np.nan
1164+
11611165
self.assertRaises(Exception, testme1)
11621166
self.assertRaises(Exception, testme2)
1167+
self.assertRaises(Exception, testme3)
11631168

11641169
def test_scalar_na_cmp_corners(self):
11651170
s = Series([2,3,4,5,6,7,8,9,10])

0 commit comments

Comments
 (0)