@@ -712,6 +712,32 @@ def test_loc_assign_non_ns_datetime(self, unit):
712
712
expected = Series (df .loc [:, "expected" ], name = unit )
713
713
tm .assert_series_equal (df .loc [:, unit ], expected )
714
714
715
+ def test_loc_modify_datetime (self ):
716
+ # see gh-28837
717
+ df = DataFrame .from_dict (
718
+ {"date" : [1485264372711 , 1485265925110 , 1540215845888 , 1540282121025 ]}
719
+ )
720
+
721
+ df ["date_dt" ] = pd .to_datetime (df ["date" ], unit = "ms" , cache = True )
722
+
723
+ df .loc [:, "date_dt_cp" ] = df .loc [:, "date_dt" ]
724
+ df .loc [[2 , 3 ], "date_dt_cp" ] = df .loc [[2 , 3 ], "date_dt" ]
725
+
726
+ expected = DataFrame (
727
+ [
728
+ [1485264372711 , "2017-01-24 13:26:12.711" , "2017-01-24 13:26:12.711" ],
729
+ [1485265925110 , "2017-01-24 13:52:05.110" , "2017-01-24 13:52:05.110" ],
730
+ [1540215845888 , "2018-10-22 13:44:05.888" , "2018-10-22 13:44:05.888" ],
731
+ [1540282121025 , "2018-10-23 08:08:41.025" , "2018-10-23 08:08:41.025" ],
732
+ ],
733
+ columns = ["date" , "date_dt" , "date_dt_cp" ],
734
+ )
735
+
736
+ columns = ["date_dt" , "date_dt_cp" ]
737
+ expected [columns ] = expected [columns ].apply (pd .to_datetime )
738
+
739
+ tm .assert_frame_equal (df , expected )
740
+
715
741
def test_loc_setitem_frame (self ):
716
742
df = self .frame_labels
717
743
0 commit comments