我有一个包含以下信息的数据框:
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
我想计算持续时间:到达时间+偏移Arr-出发时间-偏移Dep
我首先尝试将它们全部转换为时间格式,但是我只能使用实际时间,而不能使用时间偏移量:
df["Arrival Time"] = pd.to_datetime(df ["Arrival Time"]).dt.time
df["Departure Time"] = pd.to_datetime(df ["Departure Time"]).dt.time
所以我的问题是一方面将偏移量列转换为我可以用于时间计算的格式,然后如何有效地计算持续时间。
由于我想将持续时间用于数据科学计算(梯度增强),因此,如果您建议可以立即插入算法的持续时间格式,那就太好了。
答案 0 :(得分:1)
您可以尝试以下方法:
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"]
您将偏移量列转换为时间增量,然后可以将其添加到日期时间列中。