Python 从中的日期列查找特定日期的日期差
我想用2016年12月31日-注册日期列的日差来填充我的风险敞口列缺少的值。我该怎么写 所有类似的问题都是从另一列中减去一列,而不是从一个特定的日期。 我创建了一个带有CancelDate-EnrollDate的曝光列。因为有行CancelDate是NaT,所以我在Expousre中有列作为NaN。因此,我试图用2016年12月31日-注册日期来填充风险敞口列中缺失的值。然后将列中的值转换为float byPython 从中的日期列查找特定日期的日期差,python,pandas,datetime,Python,Pandas,Datetime,我想用2016年12月31日-注册日期列的日差来填充我的风险敞口列缺少的值。我该怎么写 所有类似的问题都是从另一列中减去一列,而不是从一个特定的日期。 我创建了一个带有CancelDate-EnrollDate的曝光列。因为有行CancelDate是NaT,所以我在Expousre中有列作为NaN。因此,我试图用2016年12月31日-注册日期来填充风险敞口列中缺失的值。然后将列中的值转换为float by policy.Exposure.fillna(pd.to_datetime(2016,
policy.Exposure.fillna(pd.to_datetime(2016,12,31) - policy.EnrollDate,inplace=True)
有没有更简单的方法?例如增加条件:
如果CancelDate.notnull():曝光=取消日期-注册
其他:Exposure=2016-12-31-注册您可以用
pd.Series.fillna
填充那些NaT
值,然后减去
policy['Exposure'] = policy.Exposure.dt.days
嗨,区别看起来是这样的:191462400000000000,而我想要它作为天数(数据类型:timedelta)@Dylan你能在你的问题中输出大约10行数据帧吗?我需要知道
策略的格式。注册日期。谢谢。问题解决了,我才意识到我自己也用了dt天。但我认为我所做的可以简化。有没有更好的方法?我的意思是,不仅仅是填充NaN,我更新了我在原始问题中所做的,如果我们生成带有条件的曝光列,也许我们可以跳过fillna步骤。@Dylan抱歉。。。我没看到。对有一个更简单的方法。检查我的答案。
dt = pd.to_datetime('2016/12/31', format='%Y/%m/%d')
policy['Exposure'] = (policy.CancelDate.fillna(dt) - policy.EnrollDate).dt.days