Skip to content

Commit 3ea53e8

Browse files
jbrockmendelluckyvs1
authored andcommitted
CLN: remove unnecessary casting from Block methods (pandas-dev#38700)
1 parent ac3f04f commit 3ea53e8

File tree

2 files changed

+35
-34
lines changed

2 files changed

+35
-34
lines changed

pandas/core/internals/blocks.py

-12
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
find_common_type,
2727
infer_dtype_from,
2828
infer_dtype_from_scalar,
29-
maybe_box_datetimelike,
3029
maybe_downcast_numeric,
3130
maybe_downcast_to_dtype,
3231
maybe_infer_dtype_type,
@@ -746,11 +745,6 @@ def replace(
746745
return [self] if inplace else [self.copy()]
747746

748747
values = self.values
749-
if lib.is_scalar(to_replace) and isinstance(values, np.ndarray):
750-
# The only non-DatetimeLike class that also has a non-trivial
751-
# try_coerce_args is ObjectBlock, but that overrides replace,
752-
# so does not get here.
753-
to_replace = convert_scalar_for_putitemlike(to_replace, values.dtype)
754748

755749
mask = missing.mask_missing(values, to_replace)
756750
if not mask.any():
@@ -845,7 +839,6 @@ def comp(s: Scalar, mask: np.ndarray, regex: bool = False) -> np.ndarray:
845839
if isna(s):
846840
return ~mask
847841

848-
s = maybe_box_datetimelike(s)
849842
return compare_or_regex_search(self.values, s, regex, mask)
850843

851844
if self.is_object:
@@ -919,8 +912,6 @@ def setitem(self, indexer, value):
919912
arr = self.array_values().T
920913
arr[indexer] = value
921914
return self
922-
elif lib.is_scalar(value):
923-
value = convert_scalar_for_putitemlike(value, values.dtype)
924915

925916
else:
926917
# current dtype cannot store value, coerce to common dtype
@@ -1067,9 +1058,6 @@ def putmask(self, mask, new, axis: int = 0) -> List["Block"]:
10671058
arr.putmask(mask, new)
10681059
return [self]
10691060

1070-
if lib.is_scalar(new):
1071-
new = convert_scalar_for_putitemlike(new, self.values.dtype)
1072-
10731061
if transpose:
10741062
new_values = new_values.T
10751063

pandas/tests/series/methods/test_fillna.py

+35-22
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def test_fillna_downcast(self):
177177
expected = Series([1, 0])
178178
tm.assert_series_equal(result, expected)
179179

180-
def test_timedelta_fillna(self):
180+
def test_timedelta_fillna(self, frame_or_series):
181181
# GH#3371
182182
ser = Series(
183183
[
@@ -188,9 +188,10 @@ def test_timedelta_fillna(self):
188188
]
189189
)
190190
td = ser.diff()
191+
obj = frame_or_series(td)
191192

192193
# reg fillna
193-
result = td.fillna(Timedelta(seconds=0))
194+
result = obj.fillna(Timedelta(seconds=0))
194195
expected = Series(
195196
[
196197
timedelta(0),
@@ -199,13 +200,14 @@ def test_timedelta_fillna(self):
199200
timedelta(days=1, seconds=9 * 3600 + 60 + 1),
200201
]
201202
)
202-
tm.assert_series_equal(result, expected)
203+
expected = frame_or_series(expected)
204+
tm.assert_equal(result, expected)
203205

204206
# interpreted as seconds, deprecated
205207
with pytest.raises(TypeError, match="Passing integers to fillna"):
206-
td.fillna(1)
208+
obj.fillna(1)
207209

208-
result = td.fillna(Timedelta(seconds=1))
210+
result = obj.fillna(Timedelta(seconds=1))
209211
expected = Series(
210212
[
211213
timedelta(seconds=1),
@@ -214,9 +216,10 @@ def test_timedelta_fillna(self):
214216
timedelta(days=1, seconds=9 * 3600 + 60 + 1),
215217
]
216218
)
217-
tm.assert_series_equal(result, expected)
219+
expected = frame_or_series(expected)
220+
tm.assert_equal(result, expected)
218221

219-
result = td.fillna(timedelta(days=1, seconds=1))
222+
result = obj.fillna(timedelta(days=1, seconds=1))
220223
expected = Series(
221224
[
222225
timedelta(days=1, seconds=1),
@@ -225,9 +228,10 @@ def test_timedelta_fillna(self):
225228
timedelta(days=1, seconds=9 * 3600 + 60 + 1),
226229
]
227230
)
228-
tm.assert_series_equal(result, expected)
231+
expected = frame_or_series(expected)
232+
tm.assert_equal(result, expected)
229233

230-
result = td.fillna(np.timedelta64(int(1e9)))
234+
result = obj.fillna(np.timedelta64(int(1e9)))
231235
expected = Series(
232236
[
233237
timedelta(seconds=1),
@@ -236,9 +240,10 @@ def test_timedelta_fillna(self):
236240
timedelta(days=1, seconds=9 * 3600 + 60 + 1),
237241
]
238242
)
239-
tm.assert_series_equal(result, expected)
243+
expected = frame_or_series(expected)
244+
tm.assert_equal(result, expected)
240245

241-
result = td.fillna(NaT)
246+
result = obj.fillna(NaT)
242247
expected = Series(
243248
[
244249
NaT,
@@ -248,21 +253,27 @@ def test_timedelta_fillna(self):
248253
],
249254
dtype="m8[ns]",
250255
)
251-
tm.assert_series_equal(result, expected)
256+
expected = frame_or_series(expected)
257+
tm.assert_equal(result, expected)
252258

253259
# ffill
254260
td[2] = np.nan
255-
result = td.ffill()
261+
obj = frame_or_series(td)
262+
result = obj.ffill()
256263
expected = td.fillna(Timedelta(seconds=0))
257264
expected[0] = np.nan
258-
tm.assert_series_equal(result, expected)
265+
expected = frame_or_series(expected)
266+
267+
tm.assert_equal(result, expected)
259268

260269
# bfill
261270
td[2] = np.nan
262-
result = td.bfill()
271+
obj = frame_or_series(td)
272+
result = obj.bfill()
263273
expected = td.fillna(Timedelta(seconds=0))
264274
expected[2] = timedelta(days=1, seconds=9 * 3600 + 60 + 1)
265-
tm.assert_series_equal(result, expected)
275+
expected = frame_or_series(expected)
276+
tm.assert_equal(result, expected)
266277

267278
def test_datetime64_fillna(self):
268279

@@ -553,7 +564,7 @@ def test_fillna_period(self):
553564
tm.assert_series_equal(res, exp)
554565
assert res.dtype == "Period[M]"
555566

556-
def test_fillna_dt64_timestamp(self):
567+
def test_fillna_dt64_timestamp(self, frame_or_series):
557568
ser = Series(
558569
[
559570
Timestamp("20130101"),
@@ -563,9 +574,10 @@ def test_fillna_dt64_timestamp(self):
563574
]
564575
)
565576
ser[2] = np.nan
577+
obj = frame_or_series(ser)
566578

567579
# reg fillna
568-
result = ser.fillna(Timestamp("20130104"))
580+
result = obj.fillna(Timestamp("20130104"))
569581
expected = Series(
570582
[
571583
Timestamp("20130101"),
@@ -574,11 +586,12 @@ def test_fillna_dt64_timestamp(self):
574586
Timestamp("20130103 9:01:01"),
575587
]
576588
)
577-
tm.assert_series_equal(result, expected)
589+
expected = frame_or_series(expected)
590+
tm.assert_equal(result, expected)
578591

579-
result = ser.fillna(NaT)
580-
expected = ser
581-
tm.assert_series_equal(result, expected)
592+
result = obj.fillna(NaT)
593+
expected = obj
594+
tm.assert_equal(result, expected)
582595

583596
def test_fillna_dt64_non_nao(self):
584597
# GH#27419

0 commit comments

Comments
 (0)