我有两列带有格林威治标准时间的日期时间,我需要从这个日期时间中减去三个小时。例如在第 4 行我需要在 3 小时内减去开始日期,结果是:08/02/2018 17:20:0。在同一行 4 中,我需要在 3 小时内减去结束日期,结果是:08/02/2018 21:50:0。
初始表:
cpf day startdate enddate
1234 1 08/01/2018 12:50:0 08/01/2018 15:30:0
1234 1 08/01/2018 14:30:0 08/01/2018 15:40:0
1234 1 08/01/2018 14:50:0 08/01/2018 15:50:0
1234 2 08/02/2018 20:20:0 08/03/2018 00:50:0
1234 3 08/03/2018 01:00:0 08/03/2018 03:50:0
1235 1 08/01/2018 11:50:0 08/01/2018 15:20:0
5212 1 08/01/2018 14:50:0 08/01/2018 15:20:0
结果表:
cpf day startdate enddate
1234 1 08/01/2018 09:50:0 08/01/2018 10:30:0
1234 1 08/01/2018 11:30:0 08/01/2018 10:40:0
1234 1 08/01/2018 11:50:0 08/01/2018 10:50:0
1234 2 08/02/2018 17:20:0 08/02/2018 21:50:0
1234 3 08/02/2018 22:00:0 08/03/2018 00:50:0
1235 1 08/01/2018 08:50:0 08/01/2018 10:20:0
5212 1 08/01/2018 11:50:0 08/01/2018 10:20:0
我如何在 Python 中做到这一点?
请您参考如下方法:
你可以使用timedelta
from datetime import timedelta
df['startdate'] = pd.to_datetime(df['startdate']) - timedelta(hours=3)
df['enddate'] = pd.to_datetime(df['enddate']) - timedelta(hours=3)
