我有一组从6:00到18:00到6:00等的班次数据...。我想按12小时的频率对它们进行分组。
数据如下:
time Shift
2018-01-01 06:00:00+00:00 1
2018-01-01 07:00:00+00:00 1
2018-01-01 08:00:00+00:00 1
2018-01-01 09:00:00+00:00 1
2018-01-01 10:00:00+00:00 1
2018-01-01 11:00:00+00:00 1
2018-01-01 12:00:00+00:00 1
2018-01-01 13:00:00+00:00 1
2018-01-01 14:00:00+00:00 1
2018-01-01 15:00:00+00:00 1
2018-01-01 16:00:00+00:00 1
2018-01-01 17:00:00+00:00 1
2018-01-01 18:00:00+00:00 4
2018-01-01 19:00:00+00:00 4
2018-01-01 20:00:00+00:00 4
2018-01-01 21:00:00+00:00 4
为此,我将使用以下内容:
shift_df.groupby([pd.Grouper(freq='12H',base = 6)]).first()
这将创建以下内容:
2018-01-01 06:00:00+00:00 1
2018-01-01 18:00:00+00:00 4
2018-01-02 06:00:00+00:00 2
2018-01-02 18:00:00+00:00 4
2018-01-03 06:00:00+00:00 2
2018-01-03 18:00:00+00:00 4
这正是我想要的。但是,时钟的更改时间存在一个严重的问题(我正在使用英国时间)。
3月末开始,时钟会改变一个小时。但是,工作时间保持在6:00至18:00。这意味着在年初时有一个轮班,相差1小时,在年底时有一个轮班。但是,由于我告诉我要花12个小时,所以我在一年中(一个小时)得到的结果是错误的。
要么我需要12小时的时间段来考虑时间偏移(所以一年中有一个时间段为13小时,另一个时间段为11小时),或者我需要指定将时间段拆分为6: 00和18:00,但仅在当地时间。
我尝试使用UTC时间和“欧洲/伦敦”。但是,由于它“正确地”花费了12个小时,因此永远无法正确反映数据。
非常感谢