Python:一个日期为NAT时的日期差异

时间:2017-06-27 02:50:25

标签: python python-3.x pandas numpy

我有两个datetime列。一列包含所有有效数据,另一列包含缺少的日期字段,因此有一些NaT。手头的问题是我需要取两列之间的差异,但只要第二列中有NaT值,结果列就应该有非常大的值,比如100000.这是一个例子:

输入数据:

signup_date bgc_date
2016-01-02  NaT
2016-01-21  NaT
2016-01-11  2016-01-11
2016-01-29  2016-01-30

预期产出

`signup_date    bgc_date           difference
 2016-01-02     NaT                  100000
 2016-01-21     NaT                  100000
 2016-01-11    2016-01-11             0
 2016-01-29    2016-01-30             1`

我尝试了什么:

for i in range(len(df2)):
if pd.notnull(df2[i]['bgc_date']):
    df2[i]['diff'] = df2[i]['bgc_date']- df2[i]['signup_date']
else:
    df2[i]['diff']=10000

但是,这会导致错误。有人可以帮忙。

1 个答案:

答案 0 :(得分:1)

您可以减去两列,然后使用时间增量填充缺失值:

(df.bgc_date - df.signup_date).fillna(pd.Timedelta(days=10000)).dt.days

#0    10000
#1    10000
#2        0
#3        1
#dtype: int64