簡體   English   中英

用前幾行的值減去當前行的值並返回較大的值

[英]Subtract value in current row with previous rows values and return the greater value

我想從結束日期和錯誤日期中減去當前行的開始日期,並返回最大的timedelta

          start                end       error_time
12239   2019-02-18 00:15:13 2019-02-18 01:07:41     NaT
12241   2019-02-18 01:07:56 2019-02-18 01:17:07     NaT
12243   2019-02-18 13:29:51 2019-02-18 13:41:17     NaT
12775   2019-02-18 21:31:27 2019-02-18 23:06:26     NaT
12777   2019-02-18 23:06:57 2019-02-18 23:14:38     NaT
12778   2019-02-19 09:09:51       NaT              2019-02-19 09:10:53
12780   2019-02-19 08:22:57 2019-02-19 23:04:37     NaT
12781   2019-02-19 23:04:37 2019-02-19 23:17:04     NaT
12782   2019-02-20 15:40:11 2019-02-20 15:42:27    2019-03-12 12:00:48

我已經可以從上一個結束日期中減去開始日期,但是不確定如何將該數字與timedelta進行比較-錯誤並返回兩個值中的較大者。 我嘗試使用if else語句,但這會給我以下錯誤消息:

系列的真實值是不明確的。 使用a.empty,a.bool(),a.item(),a.any()或a.all()。

代碼我有:

a = br['start'] - br['end'].shift(1)

您可以像這樣比較兩個timedelta對象:

import datetime

a = datetime(2019,3,3,12,12,12) #start time 1
b = datetime(2020,3,3,12,12,12) #end time 1
c = datetime(2019,3,4,12,12,12) #start time 2
d = datetime(2020,3,2,12,12,12) #end time 2
delta1 = a - b
delta2 = c - d
print(delta1 > delta2) # print False
print(delta1 < delta2) # print True

您不需要使用任何特殊方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM