Skip to content

Commit 54fbeaf

Browse files
committed
Merge pull request #5159 from jreback/isnull_box
API/PERF: restore auto-boxing on isnull/notnull for Series (w/o copy) preserves perf gains
2 parents eb49283 + a4d587d commit 54fbeaf

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

pandas/core/common.py

+10
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,11 @@ def _isnull_ndarraylike(obj):
202202
else:
203203
result = np.isnan(values)
204204

205+
# box
206+
if isinstance(obj, ABCSeries):
207+
from pandas import Series
208+
result = Series(result, index=obj.index, name=obj.name, copy=False)
209+
205210
return result
206211

207212

@@ -226,6 +231,11 @@ def _isnull_ndarraylike_old(obj):
226231
else:
227232
result = -np.isfinite(values)
228233

234+
# box
235+
if isinstance(obj, ABCSeries):
236+
from pandas import Series
237+
result = Series(result, index=obj.index, name=obj.name, copy=False)
238+
229239
return result
230240

231241

pandas/tests/test_common.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def test_notnull():
6666
with cf.option_context("mode.use_inf_as_null", False):
6767
for s in [tm.makeFloatSeries(),tm.makeStringSeries(),
6868
tm.makeObjectSeries(),tm.makeTimeSeries(),tm.makePeriodSeries()]:
69-
assert(isinstance(isnull(s), np.ndarray))
69+
assert(isinstance(isnull(s), Series))
7070

7171
def test_isnull():
7272
assert not isnull(1.)
@@ -77,7 +77,7 @@ def test_isnull():
7777

7878
for s in [tm.makeFloatSeries(),tm.makeStringSeries(),
7979
tm.makeObjectSeries(),tm.makeTimeSeries(),tm.makePeriodSeries()]:
80-
assert(isinstance(isnull(s), np.ndarray))
80+
assert(isinstance(isnull(s), Series))
8181

8282
# call on DataFrame
8383
df = DataFrame(np.random.randn(10, 5))

0 commit comments

Comments
 (0)