比较 timedelta 字段

Comparing timedelta fields

我正在查看文件传送时间,但不知道如何使用 for 循环 if 语句比较两个 timedelta 字段。

time_diffcob_datelast_update_time

的区别

average_diff 基于特定文件的平均值

我想找出每一行的延迟。

我已经能够使用 average_diff - time_diff

生成专栏 delay

不过,当average_diff - time_diff < 0我只想returndelay = 0那样,这不是延迟。

我制作了一个 for 循环,但它不起作用,我也不知道为什么。我确定答案很简单,但我做不到。

test_pv_import_v2['delay2'] = pd.to_timedelta('0')

for index, row in test_pv_import_v2.iterrows():
    if test_pv_import_v2['time_diff'] > test_pv_import_v2['average_diff'] :
        test_pv_import_v2['delay2'] = test_pv_import_v2['time_diff'] - test_pv_import_v2['average_diff']

使用 Series.where 按条件设置 0 Timedelta:

mask = test_pv_import_v2['time_diff'] > test_pv_import_v2['average_diff']
s = (test_pv_import_v2['time_diff'] - test_pv_import_v2['average_diff'])

test_pv_import_v2['delay2'] = s.where(mask, pd.to_timedelta('0'))