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

如何用整数减日期生成新列?解决Pandas timedelta类型错误

解决方法

问题出在Python标准库的timedelta只能接受单个数值,无法处理Pandas的Series对象。你需要用Pandas专门的时间差转换函数pd.to_timedelta()来处理整列数据,具体代码如下:

import pandas as pd

df['APPLIED_DATE'] = pd.to_datetime('2023-01-21') - pd.to_timedelta(df['MEMBERSHIP_LENGTH'], unit='days')

原理说明

pd.to_timedelta()支持直接传入Series作为参数,通过unit='days'指定将列中的整数值转换为对应的天数差,这样就能和指定的datetime标量做元素级减法,得到每个用户的会员申请日期。

示例演示

比如构造一个测试DataFrame验证效果:

df = pd.DataFrame({'MEMBERSHIP_LENGTH': [100, 50, 30]})
df['APPLIED_DATE'] = pd.to_datetime('2023-01-21') - pd.to_timedelta(df['MEMBERSHIP_LENGTH'], unit='days')
print(df)

输出结果:

MEMBERSHIP_LENGTH APPLIED_DATE
0                100   2022-10-13
1                 50   2022-11-30
2                 30   2022-12-22

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:01:04