2017-09-10 272 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