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

标签 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

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

最佳答案

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

(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/

相关文章:

线程脚本中的 Python 脚本 open_sftp_client 错误

python - 在 Python 中对多页 TIFF 页面进行平均

python - 如何删除 pytest-html 报告中的环境表

python - 如何矢量化使用其自身输出的滞后值的函数?

python - 在 Ruby 中,为什么 `Array.length` 会给出 NoMethodError?

python - 将逗号小数点分隔符转换为数据框内的点

python-3.x - 在 Python 中将值插入字符串

python-3.x - 我的 Python V2 Azure Function 未显示在我的 Azure 门户中

python - 如何在pandas python的for循环中的数据框中添加新列

python - 在 Pandas 数据框中存储字典