Pandas时间增量计算常识晚期/早期差异

laawzig2  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(145)

我的 Dataframe 有两个时间戳列,我需要添加第三个时间差列。我如何获得预期时间和实际时间之间的 * 常识 * 时间差?
如果您的预期时间是0800,而您在0730早到,则会得到常识输出:

t1 = pd.to_datetime('1/1/2022 08:00')
t2 = pd.to_datetime('1/1/2022 07:30')
pd.Timedelta(t1-t2)
> Timedelta('0 days 00:30:00')

pd.Timedelta(t1-t2).seconds / 60.0  # Minutes
> 30.0

如果您的预期时间是0800,而您在0830迟到了,则会得到相当奇怪的输出:

t1 = pd.to_datetime('1/1/2022 08:00')
t2 = pd.to_datetime('1/1/2022 08:30')
pd.Timedelta(t1-t2)
> Timedelta('-1 days +23:30:00')

pd.Timedelta(t1-t2).seconds / 60.0  # Minutes
> 1410.0

现在,我看到您可以通过减去24h或1440分钟得出一个更符合 * 常识 * 的结果:

(pd.Timedelta(t1-t2).seconds / 60.0) - 1440 # Minutes
> -30.0

我想我可以创建一个函数和apply(),但似乎这应该是一个共同的需要,虽然我没有看到任何我可以在Pandas的文档中使用.Timedelta

jgovgodb

jgovgodb1#

您应该使用total_seconds,而不是seconds

pd.Timedelta(t1-t2).total_seconds()/60

输出:-30

相关问题