Skip to main content
 首页 » 编程设计

python之如何从 Pandas 数据框列中的日期时间减去 3 小时

2025年05月04日14zlslch

我有两列带有格林威治标准时间的日期时间,我需要从这个日期时间中减去三个小时。例如在第 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)