Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从中的日期列查找特定日期的日期差_Python_Pandas_Datetime - Fatal编程技术网

Python 从中的日期列查找特定日期的日期差

Python 从中的日期列查找特定日期的日期差,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,

我想用2016年12月31日-注册日期列的日差来填充我的风险敞口列缺少的值。我该怎么写

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

我创建了一个带有CancelDate-EnrollDate的曝光列。因为有行CancelDate是NaT,所以我在Expousre中有列作为NaN。因此,我试图用2016年12月31日-注册日期来填充风险敞口列中缺失的值。然后将列中的值转换为float by

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