pandas - 如果值不相等,则计算时间差
问题描述
我可以使用以下方法计算差异(以小时为单位):
pdf["hours_used"] = (
pdf["_source_eventTime_right"] - pdf["_source_eventTime_left"]
).astype("timedelta64[h]")
这按预期工作。但我想为左右时间完全相同的行返回 NULL。如何在工时计算中添加“if”子句?
解决方案
正如评论中所建议的那样,np.where按预期工作......
pdf["hours_used"] = np.where(
(pdf["_source_eventTime_right"] - pdf["_source_eventTime_left"])
.astype("int")
.gt(0),
(pdf["_source_eventTime_right"] - pdf["_source_eventTime_left"]).astype(
"timedelta64[h]"
),
np.nan,
)
推荐阅读
- excel - VBA 循环:如何将 Ticker 符号放入 Ticker 列?
- python - Python无法检查值是否在列表中
- jenkins-pipeline - docker-workflow-plugin (docker-pipeline-plugin) java.io.IOException: 无法 rm 容器
- tensorflow - 如何在我自己的数据集上使用 Tensorflow 的 cycleGAN
- php - Laravel Dusk - 需求无法解决?
- java - 无法覆盖 catch 块代码覆盖率
- html - 使用 .htaccess 文件从 URL 中删除 .html 不起作用
- r - 有一个自举数据对象,但希望每次试验的观察总和而不是 rstudio 中的整体聚合
- ios - Alamofire multipart 仅上传一张图片 ios
- azure-keyvault - 从部署在 VNET 中的 Azure 容器实例访问 KeyVault