2017-09-10 271 views
1
policy.Exposure.fillna(pd.to_datetime(2016,12,31) - policy.EnrollDate,inplace=True) 

我想填写“曝光”列中缺失的值与日期差异的2016,12,31 - EnrollDate列。我应该如何写这个?查找日期与大熊猫日期列的日期差异

所有类似的问题都是从另一列中减去一列,而不是从特定日期减去。 enter image description here

我用CancelDate - EnrollDate创建了一个Exposure列。然后,因为有些行的CancelDate是NaT,所以我在Expousre中有列为NaN。所以我想用2016,12,31 - EnrollDate来填补曝光栏中缺失的值。然后转换列中的值以浮动

policy['Exposure'] = policy.Exposure.dt.days 

有没有更简单的方法来做到这一点?如加入条件: 如果CancelDate.notnull():曝光= CancelDate - 报名 其他:风险= 2016年12月31日 - 报名

回答

1

您可以填补这些NaT值与pd.Series.fillna然后减。

dt = pd.to_datetime('2016/12/31', format='%Y/%m/%d') 
policy['Exposure'] = (policy.CancelDate.fillna(dt) - policy.EnrollDate).dt.days 
+0

嗨,所不同的是这样的:191462400000000000,而我想把它当作一个天数(数据类型:timedelta) – Dylan

+0

@Dylan可以请你在你的问题输出约10行数据帧?我需要知道'policy.EnrollDate'是什么格式。 –

+0

更新了图片 – Dylan