我试图找到pandas数据框架列中日期时间之间的差异,但是列中的许多条目都是NA值。示例数据集:
Dates = pd.Series([np.nan, np.nan, np.nan, '2019-12-11', np.nan, '2019-12-14', np.nan, np.nan, '2019-12-20', '2019-12-23'])
我的目标是找到每个列出的日期之间的时间间隔,忽略日期之间有多少空值,即在'2019-12-20'和'2019-12-14'之间经过了多少天,同时忽略两者之间的2 NA值,并最终将该信息附加到新列。
你可以过滤掉nan然后使用diff
s = pd.Series([np.nan, np.nan, np.nan, '2019-12-11', np.nan, '2019-12-14', np.nan, np.nan, '2019-12-20', '2019-12-23'])
s = pd.to_datetime(s)
s[~s.isna()].diff()
# 3 NaT
# 5 3 days
# 8 6 days
# 9 3 days
# dtype: timedelta64[ns]
另一个选项是
s.ffill().diff()
# 0 NaT
# 1 NaT
# 2 NaT
# 3 NaT
# 4 0 days
# 5 3 days
# 6 0 days
# 7 0 days
# 8 6 days
# 9 3 days
# dtype: timedelta64[ns]