我有两个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
但是,这会导致错误。有人可以帮忙吗?
最佳答案
您可以减去两列,然后用时间增量填充缺失值:
(df.bgc_date - df.signup_date).fillna(pd.Timedelta(days=10000)).dt.days
#0 10000
#1 10000
#2 0
#3 1
#dtype: int64
关于Python:一个日期为 NAT 时的日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771578/