You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python计算pandas两列时间差时如何忽略非时间字符串无效值

解决方法

你原先的代码报错的核心原因是Complete列混杂了非时间字符串,列类型为通用object类型,无法直接进行时间减法运算,统一转datetime类型后就能正常运算。
首先用pd.to_datetime()的errors='coerce'参数处理时间列,将无法解析为时间的无效值(比如你的'open')自动转为空时间值NaT,pandas做时间运算时会自动跳过NaT所在行,不会报错:

  • 第一步:统一转换两列为标准datetime类型
import pandas as pd
# 转换时自动把无效值转为NaT
df['Create'] = pd.to_datetime(df['Create'], errors='coerce')
df['Complete'] = pd.to_datetime(df['Complete'], errors='coerce')
  • 第二步:计算时间差并转换为分钟单位
# 计算完的timedelta转总秒数后除以60得到分钟数
df['diff_mins'] = (df['Create'] - df['Complete']).dt.total_seconds() / 60

如果后续不需要保留无效行,运算完可以直接过滤掉diff_mins是空的行:

df = df.dropna(subset=['diff_mins'])

内容的提问来源于stack exchange,提问作者ad282189323213

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 21:09:04