python - 使用时间偏移列计算时间之间的时间差
问题描述
我有一个包含以下信息的数据框:
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
所以我的问题是一方面将偏移列转换为我可以用于时间计算的格式,然后如何有效地计算持续时间。
由于我想将持续时间用于数据科学计算(梯度提升),如果您能建议一种可以立即插入算法的持续时间格式,那就太好了。
解决方案
您可以尝试以下方法:
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"]
您将您的偏移列转换为时间增量,然后您可以将其添加到您的日期时间列。
推荐阅读
- c# - Microsoft.win32.SaveFileDialog 干扰内存使用 WPF (.Net5)
- azure - 从存储容器恢复 Azure Linux webapp 备份失败 PowerShell
- go - 无法在代理后面的 linux 上安装 operator-sdk
- dagger-2 - 使用组件依赖时如何处理多个 Dagger 组件
- visual-studio - SSRS 分组和分页
- javascript - 在WebStorm中,如果是自己定义的函数,如何实现这个路径的提示
- python - 更有效的方式来编写这个 for 循环?
- java - 我对随机 TSP 索引有疑问
- ts-jest - 如何在打字稿中模拟“request-promise”模块的“get”方法?
- javascript - 如何检查参数/参数是否在 JavaScript 上已定义的 const 内?