Skip to content

Commit 23bbe73

Browse files
committed
refactored skipna to switch
1 parent 227d8c4 commit 23bbe73

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

pandas/core/nanops.py

+16-3
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,21 @@ def _f(*args, **kwargs):
8787

8888
return _f
8989

90+
class skipna_switch(object):
91+
92+
def __init__(self, alt):
93+
self.alt = alt
94+
95+
def __call__(self, default):
96+
97+
@functools.wraps(default)
98+
def f(values, axis=None, skipna=True, **kwds):
99+
if skipna:
100+
return default(values, axis, skipna, **kwds)
101+
else:
102+
return self.alt(values, axis, **kwds)
103+
104+
return f
90105

91106
class bottleneck_switch(object):
92107

@@ -338,15 +353,13 @@ def nanmean(values, axis=None, skipna=True):
338353
return _wrap_results(the_mean, dtype)
339354

340355

356+
@skipna_switch(np.median)
341357
@disallow('M8')
342358
@bottleneck_switch()
343359
def nanmedian(values, axis=None, skipna=True):
344360

345361
values, mask, dtype, dtype_max = _get_values(values, skipna)
346362

347-
if not skipna:
348-
return _wrap_results(np.median(values, axis=axis), dtype)
349-
350363
def get_median(x):
351364
mask = notna(x)
352365
if not skipna and not mask.all():

0 commit comments

Comments
 (0)