如何基于当前日期对DataFrame列进行日期运算计算到期剩余天数
问题排查&修复方案
你的代码存在3处导致运行失败的问题:
- 你调用
strftime将today转换成了字符串格式,datetime类型的DataFrame列无法直接和字符串做日期差值运算 - 新增列的列名末尾缺少闭合的单引号,存在基础语法错误
- 两个日期相减得到的是timedelta类型,需要提取天数属性才能得到整数格式的剩余天数
可正常运行的代码
from datetime import date import pandas as pd # 保留today的原生日期类型,不要转成字符串 today = date.today() # 整列转datetime格式,直接调用pd.to_datetime比apply效率更高 df['Maturity Date'] = pd.to_datetime(df['Maturity Date']) # 日期运算后通过dt.days提取天数字段,同时补全列名的闭合引号 df['Remaining Days til Maturity'] = (df['Maturity Date'] - pd.to_datetime(today)).dt.days
注:如果计算结果为负数,说明对应记录的到期日早于当前日期,已经到期
内容的提问来源于stack exchange,提问作者Sumit
相关产品推荐
相关产品推荐

