使用分组程序选择使用夏时制的时间段

时间:2018-12-28 09:01:10

标签: python datetime pandas-groupby

我有一组从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个小时,因此永远无法正确反映数据。

非常感谢

0 个答案:

没有答案