From cf817ff65c0071819c3f09fd63fa0133f06c09e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jordi=20Contest=C3=AD?= <25779507+jcontesti@users.noreply.github.com> Date: Tue, 29 May 2018 03:34:34 +0200 Subject: [PATCH] TST: tests for inconsistent indexing with datetimes (#20550) --- pandas/tests/frame/test_indexing.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pandas/tests/frame/test_indexing.py b/pandas/tests/frame/test_indexing.py index 5459b6910e11a..be37e696ea0a3 100644 --- a/pandas/tests/frame/test_indexing.py +++ b/pandas/tests/frame/test_indexing.py @@ -1550,6 +1550,25 @@ def test_setitem_single_column_mixed_datetime(self): # pytest.raises( # Exception, df.loc.__setitem__, ('d', 'timestamp'), [nan]) + def test_setitem_mixed_datetime(self): + # GH 9336 + expected = DataFrame({'a': [0, 0, 0, 0, 13, 14], + 'b': [pd.datetime(2012, 1, 1), + 1, + 'x', + 'y', + pd.datetime(2013, 1, 1), + pd.datetime(2014, 1, 1)]}) + df = pd.DataFrame(0, columns=list('ab'), index=range(6)) + df['b'] = pd.NaT + df.loc[0, 'b'] = pd.datetime(2012, 1, 1) + df.loc[1, 'b'] = 1 + df.loc[[2, 3], 'b'] = 'x', 'y' + A = np.array([[13, np.datetime64('2013-01-01T00:00:00')], + [14, np.datetime64('2014-01-01T00:00:00')]]) + df.loc[[4, 5], ['a', 'b']] = A + assert_frame_equal(df, expected) + def test_setitem_frame(self): piece = self.frame.loc[self.frame.index[:2], ['A', 'B']] self.frame.loc[self.frame.index[-2]:, ['A', 'B']] = piece.values