我有两个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
但是,这会导致错误。有人可以帮忙。
答案 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