首页 > 解决方案 > 使用时间偏移列计算时间之间的时间差

问题描述

我有一个包含以下信息的数据框:

         Departure Time  Offset Dep  Arrival Time   Offset Arr
0          07:10           +01:00        08:25         +01:00
1          09:05           +01:00        10:10         +01:00
2          10:50           +01:00        12:05         +01:00
3          11:55           +01:00        14:15         +00:00
4          14:55           +02:00        18:40         +01:00


df.dtypes

Departure Time      object
Offset Departure    object
Arrival Time        object
Offset Arrival      object
dtype: object

我想计算持续时间:Arrival Time + Offset Arr - Departure Time - Offset Dep

我首先尝试将它们全部转换为时间格式,但我只能使用实际时间来执行此操作,而不是时间偏移:

df["Arrival Time"] = pd.to_datetime(df ["Arrival Time"]).dt.time
df["Departure Time"] = pd.to_datetime(df ["Departure Time"]).dt.time

所以我的问题是一方面将偏移列转换为我可以用于时间计算的格式,然后如何有效地计算持续时间。

由于我想将持续时间用于数据科学计算(梯度提升),如果您能建议一种可以立即插入算法的持续时间格式,那就太好了。

标签: pythonpython-3.xpandasdataframepython-datetime

解决方案


您可以尝试以下方法:

import pandas as pd
import datetime

#date time 
df["Departure Time"] = pd.to_datetime(df["Departure Time"])
df["Arrival Time"] = pd.to_datetime(df["Arrival Time"])

#time delta
df["Offset Dep"]=pd.to_timedelta(df["Offset Dep"], unit='hour')
df["Offset Arr"]=pd.to_timedelta(df["Offset Arr"], unit='hour')


df["Time Duration"]= df["Arrival Time"] + df["Offset Dep"] - df["Departure Time"] - df["Offset Dep"]

您将您的偏移列转换为时间增量,然后您可以将其添加到您的日期时间列。


推荐阅读