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

如何在Pandas中计算DataFrame两列的时间差(以分钟为单位)

将Pandas Timedelta转换为分钟数

嘿,这个问题我常碰到,给你几个实用的解决方案:

方法1:精确计算总分钟数(带小数)

如果你需要保留完整精度的分钟数(比如包含秒数转换的小数部分),可以用dt.total_seconds()先获取时间差的总秒数,再除以60得到分钟数:

# 直接计算并转换
df['TIME_TO_REPORT'] = (df['TEST_TIME'] - df['RECEIPT_DATE_TIME']).dt.total_seconds() / 60

# 如果你已经提前算出了timedelta列,也可以直接对该列处理
# df['TIME_TO_REPORT'] = df['TIME_TO_REPORT'].dt.total_seconds() / 60

举个例子,你给出的0 days 05:58:00会被转换成358.0分钟;如果是0 days 00:00:30这种带秒数的时间差,会得到0.5分钟,精度完全保留。

方法2:快速取整转换(整数分钟)

如果只需要整数分钟(自动截断小数部分),可以直接用astype指定转换为分钟单位的timedelta,再转成整数类型:

df['TIME_TO_REPORT'] = (df['TEST_TIME'] - df['RECEIPT_DATE_TIME']).astype('timedelta64[m]').astype(int)

这个方法会直接把时间差转换成整数分钟,比如0 days 05:58:30会得到358分钟,适合不需要小数精度的场景。

对应你示例数据的转换结果

针对你给出的示例输出,两种方法的结果如下:

原timedelta值方法1结果方法2结果
0 days 05:58:00358.0358
0 days 03:46:00226.0226
0 days 05:25:00325.0325

这样处理后,你就能得到纯数字格式的分钟数啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:57:45