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

Pandas中按列指定天数快速增量日期的向量化方法咨询

向量化方法实现日期按动态天数增量计算

完全理解你的痛点——apply()逐行处理在大数据集上确实慢得让人头疼,其实Pandas本身就支持完全向量化的方式来实现这个需求,根本不用逐行迭代。

解决方案代码

import pandas as pd

# 先构造你的示例数据集
df = pd.DataFrame(
    {
        'Date_Installed': pd.to_datetime(['2018-11-15', '2018-11-15']),
        'days_from_instalation': [2, 3]
    },
    index=[11885, 111885]
)

# 核心向量化操作:直接将天数列转为Timedelta后与日期列相加
df['desired_date'] = df['Date_Installed'] + pd.to_timedelta(df['days_from_instalation'], unit='D')

# 输出验证
print(df.to_dict())

为什么这个方法更快?

  • pd.to_timedelta()可以直接将整列的数值转换为时间差对象,这是一个向量化操作,底层由C语言实现,没有Python层面的循环开销。
  • Pandas的日期列(datetime64类型)支持直接和时间差列进行元素级别的加法运算,整个过程都是批量处理,性能比apply()的逐行调用快几个数量级,尤其在百万级以上的数据集上差异会非常明显。

输出结果

运行后你会得到和预期完全一致的结果:

{'Date_Installed': {11885: Timestamp('2018-11-15 00:00:00'), 111885: Timestamp('2018-11-15 00:00:00')}, 'days_from_instalation': {11885: 2, 111885: 3}, 'desired_date': {11885: Timestamp('2018-11-17 00:00:00'), 111885: Timestamp('2018-11-18 00:00:00')}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:39:43