【发布时间】:2021-02-02 09:18:45
【问题描述】:
我需要计算两个包含日期的 pandas df 列之间的差异。我需要以天为单位的差异,而不是包含周末。
我知道我可以使用
np.busday_count()
实现这一目标。我也知道,为了让这个函数正常工作,我可能需要将数据类型切换为 datetime[64]。
我的问题是,由于数据来源的原因,我的数据可能在任一输入列中包含 NaT 的某些值。 np.nusday_count() 不喜欢这样。
有没有一种方法可以计算包含日期的两列之间的差异,以天为单位,同时不包括周末,对于第 1 列或第 2 列将是 NaT 的任何地方不运行计算/返回空白并将数据输入到数据框中的新列。我已经尝试了好几个小时都没有成功。
令人沮丧的是,如果我不必忽略周末,这一切都可以非常简单地完成
df['Difference in Days'] = df['Column 2] - df['Column 1']
对于我想要实现的初始 df 将是这样的
Column 1 Column 2
07/10/20 09/10/20
07/10/20 12/10/20
NaT 09/10/20
07/10/20 NaT
像这样的最终df
Column 1 Column 2 Difference in Days
07/10/20 09/10/20 2
07/10/20 12/10/20 3
NaT 09/10/20 Blank
07/10/20 NaT Blank
【问题讨论】: