Python:一个日期为NAT时的日期差
我有两个Python:一个日期为NAT时的日期差,python,python-3.x,pandas,numpy,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
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
我发现了这个错误:
TypeError:data type“datetime”不可理解
您能稍微诊断一下抛出错误的部分吗?确保bgc_date
和signup_date
两列都是日期时间数据类型。如果不使用pd.to\u datetime
转换。