Skip to content

Commit c851246

Browse files
Dr-Irvjorisvandenbossche
authored andcommitted
BUG: DecimalArray and JSONArray that are empty return incorrect results for isna() (#21190)
(cherry picked from commit 6f1f975)
1 parent 2c3f0ff commit c851246

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

pandas/tests/extension/base/missing.py

+5
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ def test_isna(self, data_missing):
1818
expected = pd.Series(expected)
1919
self.assert_series_equal(result, expected)
2020

21+
# GH 21189
22+
result = pd.Series(data_missing).drop([0, 1]).isna()
23+
expected = pd.Series([], dtype=bool)
24+
self.assert_series_equal(result, expected)
25+
2126
def test_dropna_series(self, data_missing):
2227
ser = pd.Series(data_missing)
2328
result = ser.dropna()

pandas/tests/extension/decimal/array.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def nbytes(self):
9090
return 0
9191

9292
def isna(self):
93-
return np.array([x.is_nan() for x in self._data])
93+
return np.array([x.is_nan() for x in self._data], dtype=bool)
9494

9595
@property
9696
def _na_value(self):

pandas/tests/extension/json/array.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ def nbytes(self):
108108
return sys.getsizeof(self.data)
109109

110110
def isna(self):
111-
return np.array([x == self.dtype.na_value for x in self.data])
111+
return np.array([x == self.dtype.na_value for x in self.data],
112+
dtype=bool)
112113

113114
def take(self, indexer, allow_fill=False, fill_value=None):
114115
# re-implement here, since NumPy has trouble setting

0 commit comments

Comments
 (0)