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

Pandas日期相减返回整数及生成0/1时限标识列实现问题

Pandas 日期列相减获取整数天数并生成判断列

核心需求

对两个日期列做减法返回整数结果,用于后续计算列的引用。
原始csv文件名为io,包含三列:ID、CreatedDate、IFSPDate,需要新增两个计算列。

计算列1:Days(日期差列)

最初实现代码如下:

io['CreatedDate'] = pd.to_datetime(io.CreatedDate)
io['IFSPDate'] = pd.to_datetime(io.IFSPDate)

for ind, row in io.iterrows():
    dataset.loc[ind,"Days to Table"] = row['CreatedDate'] - row['IFSPDate']

得到的Days列结果为timedelta格式,示例输出如下:

IDCreatedDateIFSPDateDays
12021-09-172021-09-170 days 00:00:00
22021-08-052021-01-13204 days 00:00:00
32021-09-032041-08-313 days 00:00:00
42021-09-162021-07-2751 days 00:00:00

计算列2:Timeliness(时效性判断列)

实现逻辑:如果Days列的数值≤4则返回1,否则返回0。

遇到的问题

现有代码得到的Days列结果不是整数类型,无法直接使用<=运算符判断生成Timeliness列的0/1值。

期望输出结果

IDCreatedDateIFSPDateDaysTimeliness
12021-09-172021-09-1701
22021-08-052021-01-132040
32021-09-032041-08-3131
42021-09-162021-07-27510

已验证解决方案

  • 日期相减直接返回整数天数:
io["Days"] = (io["CreatedDate"] - io["IFSPDate"]).dt.days
  • 生成0/1判断列(需先导入numpy库):
import numpy as np
io["Timeliness"] = np.where(io['Days'] <= 4, '1', '0')

如果需要Timeliness列为整数类型,可修改为:

io["Timeliness"] = np.where(io['Days'] <= 4, 1, 0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:39:03