Skip to content

Commit d9ead32

Browse files
committed
Add test
1 parent f2adc92 commit d9ead32

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

pandas/tests/frame/methods/test_replace.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1468,18 +1468,23 @@ def test_regex_replace_scalar(
14681468
tm.assert_frame_equal(result, expected)
14691469

14701470
@pytest.mark.parametrize("regex", [False, True])
1471-
def test_replace_regex_dtype_frame(self, regex):
1471+
@pytest.mark.parametrize("value", [1, "1"])
1472+
def test_replace_regex_dtype_frame(self, regex, value):
14721473
# GH-48644
14731474
df1 = DataFrame({"A": ["0"], "B": ["0"]})
1474-
expected_df1 = DataFrame({"A": [1], "B": [1]}, dtype=object)
1475-
result_df1 = df1.replace(to_replace="0", value=1, regex=regex)
1475+
# When value is an integer, coerce result to object.
1476+
# When value is a string, infer the correct string dtype.
1477+
dtype = object if value == 1 else None
1478+
1479+
expected_df1 = DataFrame({"A": [value], "B": [value]}, dtype=dtype)
1480+
result_df1 = df1.replace(to_replace="0", value=value, regex=regex)
14761481
tm.assert_frame_equal(result_df1, expected_df1)
14771482

14781483
df2 = DataFrame({"A": ["0"], "B": ["1"]})
14791484
if regex:
1480-
expected_df2 = DataFrame({"A": [1], "B": ["1"]}, dtype=object)
1485+
expected_df2 = DataFrame({"A": [1], "B": ["1"]}, dtype=dtype)
14811486
else:
1482-
expected_df2 = DataFrame({"A": Series([1], dtype=object), "B": ["1"]})
1487+
expected_df2 = DataFrame({"A": Series([1], dtype=dtype), "B": ["1"]})
14831488
result_df2 = df2.replace(to_replace="0", value=1, regex=regex)
14841489
tm.assert_frame_equal(result_df2, expected_df2)
14851490

0 commit comments

Comments
 (0)