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

Pandas无需apply()计算DataFrame两列日期间隔天数的向量化方法

最优向量化实现方案

直接使用pandas timedelta类型自带的dt访问器即可,代码如下:

df['c'] = (df['b'] - df['a']).dt.days

这个方案完全是底层向量化运算,不需要逐行遍历,性能远高于apply实现:10万行级别的数据下,速度是apply方案的50~100倍,数据量越大性能优势越明显。

扩展替代方案

如果需要灵活适配不同的时间单位转换,可以用整除指定时间单位的方式实现,同样是向量化运算:

# 转天数
df['c'] = (df['b'] - df['a']) // pd.Timedelta(days=1)
# 如果要转小时,修改单位参数即可
# df['c'] = (df['b'] - df['a']) // pd.Timedelta(hours=1)

两种方案的输出结果完全一致,都是整数类型的间隔天数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:45:02