如何解决比较 timedelta 字段
我正在查看文件传送时间,但不知道如何使用 for 循环 if 语句比较两个 timedelta 字段。
time_diff
是 cob_date
和 last_update_time
average_diff
基于特定文件的平均值
我想找到每一行的延迟。
我已经能够使用 delay
average_diff - time_diff
然而,当 average_diff - time_diff < 0
我只想返回 delay = 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'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。