@@ -268,6 +268,7 @@ def test_set_index_cast_datetimeindex(self):
268
268
lambda d : pd .Timestamp (d , tz = tz ))
269
269
assert_frame_equal (df .reset_index (), expected )
270
270
271
+ def test_set_index_timezone (self ):
271
272
# GH 12358
272
273
# tz-aware Series should retain the tz
273
274
i = pd .to_datetime (["2014-01-01 10:10:10" ],
@@ -277,6 +278,25 @@ def test_set_index_cast_datetimeindex(self):
277
278
self .assertEqual (pd .DatetimeIndex (pd .Series (df .i ))[0 ].hour , 11 )
278
279
self .assertEqual (df .set_index (df .i ).index [0 ].hour , 11 )
279
280
281
+ def test_set_index_dst (self ):
282
+ di = pd .date_range ('2006-10-29 00:00:00' , periods = 3 ,
283
+ req = 'H' , tz = 'US/Pacific' )
284
+
285
+ df = pd .DataFrame (data = {'a' : [0 , 1 , 2 ], 'b' : [3 , 4 , 5 ]},
286
+ index = di ).reset_index ()
287
+ # single level
288
+ res = df .set_index ('index' )
289
+ exp = pd .DataFrame (data = {'a' : [0 , 1 , 2 ], 'b' : [3 , 4 , 5 ]},
290
+ index = pd .Index (di , name = 'index' ))
291
+ tm .assert_frame_equal (res , exp )
292
+
293
+ # GH 12920
294
+ res = df .set_index (['index' , 'a' ])
295
+ exp_index = pd .MultiIndex .from_arrays ([di , [0 , 1 , 2 ]],
296
+ names = ['index' , 'a' ])
297
+ exp = pd .DataFrame ({'b' : [3 , 4 , 5 ]}, index = exp_index )
298
+ tm .assert_frame_equal (res , exp )
299
+
280
300
def test_set_index_multiindexcolumns (self ):
281
301
columns = MultiIndex .from_tuples ([('foo' , 1 ), ('foo' , 2 ), ('bar' , 1 )])
282
302
df = DataFrame (np .random .randn (3 , 3 ), columns = columns )
0 commit comments