@@ -386,7 +386,6 @@ def fillna(self, value, limit=None, inplace=False, downcast=None,
386
386
# fillna, but if we cannot coerce, then try again as an ObjectBlock
387
387
try :
388
388
values , _ , _ , _ = self ._try_coerce_args (self .values , value )
389
- # value may be converted to internal, thus drop
390
389
blocks = self .putmask (mask , value , inplace = inplace )
391
390
blocks = [b .make_block (values = self ._try_coerce_result (b .values ))
392
391
for b in blocks ]
@@ -1865,6 +1864,19 @@ class TimeDeltaBlock(DatetimeLikeBlockMixin, IntBlock):
1865
1864
def _box_func (self ):
1866
1865
return lambda x : tslib .Timedelta (x , unit = 'ns' )
1867
1866
1867
+ def _can_hold_element (self , element ):
1868
+ if is_list_like (element ):
1869
+ element = np .array (element )
1870
+ tipo = element .dtype .type
1871
+ return issubclass (tipo , np .timedelta64 )
1872
+ return isinstance (element , (timedelta , np .timedelta64 ))
1873
+
1874
+ def _try_cast (self , element ):
1875
+ try :
1876
+ return Timedelta (element )
1877
+ except : # pragma: no cover
1878
+ return element
1879
+
1868
1880
def fillna (self , value , ** kwargs ):
1869
1881
1870
1882
# allow filling with integers to be
@@ -4943,6 +4955,7 @@ def _putmask_smart(v, m, n):
4943
4955
4944
4956
# change the dtype if needed
4945
4957
n = np .asarray (n )
4958
+
4946
4959
dtype , _ = maybe_promote (n .dtype )
4947
4960
4948
4961
if is_extension_type (v .dtype ) and is_object_dtype (dtype ):
0 commit comments