@@ -3753,6 +3753,29 @@ def test_groupby_groups_datetimeindex_tz(self):
3753
3753
result = df .groupby (level = 0 ).sum ()
3754
3754
assert_frame_equal (result , expected )
3755
3755
3756
+ def test_groupby_multi_timezone (self ):
3757
+
3758
+ # combining multiple / different timezones yields UTC
3759
+
3760
+ data = """0,2000-01-28 16:47:00,America/Chicago
3761
+ 1,2000-01-29 16:48:00,America/Chicago
3762
+ 2,2000-01-30 16:49:00,America/Los_Angeles
3763
+ 3,2000-01-31 16:50:00,America/Chicago
3764
+ 4,2000-01-01 16:50:00,America/New_York"""
3765
+
3766
+ df = pd .read_csv (StringIO (data ),header = None , names = ['value' ,'date' ,'tz' ])
3767
+ result = df .groupby ('tz' ).date .apply (lambda x : pd .to_datetime (x ).dt .tz_localize (x .name ))
3768
+
3769
+ expected = pd .to_datetime (Series (['2000-01-28 22:47:00' , '2000-01-29 22:48:00' , '2000-01-31 00:49:00' , '2000-01-31 22:50:00' , '2000-01-01 21:50:00' ]))
3770
+ assert_series_equal (result , expected )
3771
+
3772
+ tz = 'America/Chicago'
3773
+ result = pd .to_datetime (df .groupby ('tz' ).date .get_group (tz )).dt .tz_localize (tz )
3774
+ expected = pd .to_datetime (Series (['2000-01-28 16:47:00' , '2000-01-29 16:48:00' ,'2000-01-31 16:50:00' ],
3775
+ index = [0 ,1 ,3 ],
3776
+ name = 'date' )).dt .tz_localize (tz )
3777
+ assert_series_equal (result , expected )
3778
+
3756
3779
def test_groupby_reindex_inside_function (self ):
3757
3780
from pandas .tseries .api import DatetimeIndex
3758
3781
0 commit comments