Skip to content

Commit 2411042

Browse files
authored
test: Add test for loc assignment changes datetime dtype (#50037)
1 parent 0cebd75 commit 2411042

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

pandas/tests/frame/indexing/test_indexing.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
date_range,
3030
isna,
3131
notna,
32+
to_datetime,
3233
)
3334
import pandas._testing as tm
3435

@@ -1454,6 +1455,26 @@ def test_loc_bool_multiindex(self, dtype, indexer):
14541455
)
14551456
tm.assert_frame_equal(result, expected)
14561457

1458+
@pytest.mark.parametrize("utc", [False, True])
1459+
@pytest.mark.parametrize("indexer", ["date", ["date"]])
1460+
def test_loc_datetime_assignment_dtype_does_not_change(self, utc, indexer):
1461+
# GH#49837
1462+
df = DataFrame(
1463+
{
1464+
"date": to_datetime(
1465+
[datetime(2022, 1, 20), datetime(2022, 1, 22)], utc=utc
1466+
),
1467+
"update": [True, False],
1468+
}
1469+
)
1470+
expected = df.copy(deep=True)
1471+
1472+
update_df = df[df["update"]]
1473+
1474+
df.loc[df["update"], indexer] = update_df["date"]
1475+
1476+
tm.assert_frame_equal(df, expected)
1477+
14571478

14581479
class TestDataFrameIndexingUInt64:
14591480
def test_setitem(self, uint64_frame):

0 commit comments

Comments
 (0)