Skip to content
This repository was archived by the owner on Feb 2, 2024. It is now read-only.

Commit 30e5395

Browse files
Merge pull request #890 from kozlov-alexey/feature/merge_from_release_0.33
Merge from integration/release_0.33 branch
2 parents df4d8d3 + ef15baa commit 30e5395

File tree

7 files changed

+294
-301
lines changed

7 files changed

+294
-301
lines changed

azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
trigger:
2-
- master
2+
- '*'
33

44
pr:
5-
- master
5+
- '*'
66

77
jobs:
88
- template: buildscripts/azure/template-windows.yml

sdc/functions/numpy_like.py

Lines changed: 46 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -534,26 +534,61 @@ def sdc_fillna_overload(self, inplace=False, value=None):
534534

535535
dtype = self.dtype
536536
isnan = get_isnan(dtype)
537+
537538
if (
538539
(isinstance(inplace, types.Literal) and inplace.literal_value == True) or # noqa
539540
(isinstance(inplace, bool) and inplace == True) # noqa
540541
):
542+
543+
def sdc_fillna_inplace_noop(self, inplace=False, value=None):
544+
return None
545+
546+
if isinstance(value, (types.NoneType, types.Omitted)) or value is None:
547+
return sdc_fillna_inplace_noop
548+
541549
if isinstance(dtype, (types.Integer, types.Boolean)):
542-
def sdc_fillna_inplace_int_impl(self, inplace=False, value=None):
550+
return sdc_fillna_inplace_noop
551+
552+
if isinstance(dtype, types.Float):
553+
def sdc_fillna_inplace_float_impl(self, inplace=False, value=None):
554+
_value = np.nan if value is None else value
555+
length = len(self)
556+
for i in prange(length):
557+
if isnan(self[i]):
558+
self[i] = _value
543559
return None
544560

545-
return sdc_fillna_inplace_int_impl
561+
return sdc_fillna_inplace_float_impl
546562

547-
def sdc_fillna_inplace_float_impl(self, inplace=False, value=None):
548-
length = len(self)
549-
for i in prange(length):
550-
if isnan(self[i]):
551-
self[i] = value
563+
if isinstance(dtype, types.UnicodeType):
564+
# TO-DO: not supported, since no generic setitem for StringArray
552565
return None
553566

554-
return sdc_fillna_inplace_float_impl
555-
556567
else:
568+
569+
def sdc_fillna_noop(self, inplace=False, value=None):
570+
return copy(self)
571+
572+
if isinstance(value, (types.NoneType, types.Omitted)) or value is None:
573+
return sdc_fillna_noop
574+
575+
if isinstance(dtype, (types.Integer, types.Boolean)):
576+
return sdc_fillna_noop
577+
578+
if isinstance(dtype, types.Float):
579+
def sdc_fillna_impl(self, inplace=False, value=None):
580+
_value = np.nan if value is None else value
581+
length = len(self)
582+
filled_data = numpy.empty(length, dtype=dtype)
583+
for i in prange(length):
584+
if isnan(self[i]):
585+
filled_data[i] = _value
586+
else:
587+
filled_data[i] = self[i]
588+
return filled_data
589+
590+
return sdc_fillna_impl
591+
557592
if isinstance(self.dtype, types.UnicodeType):
558593
def sdc_fillna_str_impl(self, inplace=False, value=None):
559594
n = len(self)
@@ -562,9 +597,9 @@ def sdc_fillna_str_impl(self, inplace=False, value=None):
562597
for i in prange(n):
563598
s = self[i]
564599
if sdc.hiframes.api.isna(self, i):
565-
num_chars += len(value)
600+
num_chars += get_utf8_size(value)
566601
else:
567-
num_chars += len(s)
602+
num_chars += get_utf8_size(s)
568603

569604
filled_data = pre_alloc_string_array(n, num_chars)
570605
for i in prange(n):
@@ -576,24 +611,6 @@ def sdc_fillna_str_impl(self, inplace=False, value=None):
576611

577612
return sdc_fillna_str_impl
578613

579-
if isinstance(dtype, (types.Integer, types.Boolean)):
580-
def sdc_fillna_int_impl(self, inplace=False, value=None):
581-
return copy(self)
582-
583-
return sdc_fillna_int_impl
584-
585-
def sdc_fillna_impl(self, inplace=False, value=None):
586-
length = len(self)
587-
filled_data = numpy.empty(length, dtype=dtype)
588-
for i in prange(length):
589-
if isnan(self[i]):
590-
filled_data[i] = value
591-
else:
592-
filled_data[i] = self[i]
593-
return filled_data
594-
595-
return sdc_fillna_impl
596-
597614

598615
def nanmin(a):
599616
pass

0 commit comments

Comments
 (0)