比较 timedelta 字段
Comparing timedelta fields
我正在查看文件传送时间,但不知道如何使用 for 循环 if 语句比较两个 timedelta 字段。
time_diff
是cob_date
和last_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'))
我正在查看文件传送时间,但不知道如何使用 for 循环 if 语句比较两个 timedelta 字段。
time_diff
是cob_date
和last_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'))