【发布时间】:2020-07-10 01:38:47
【问题描述】:
numpy busdays_count 可以工作,但是当我将它应用到数据框时,我会遇到错误,因为某些日期是 NaT(正确)。
如果它是一个普通数组,我可以迭代每一行,检查是否为 NaT,然后应用公式,但在这里不确定...
data_raw['due'] = pd.to_datetime(data_raw['Due Date'], format="%Y%m%d")
data_raw['clo'] = pd.to_datetime(data_raw['Closed Date'], format="%Y%m%d")
data_raw['perf'] = data_raw.apply(lambda row: np.busday_count(row['due'].values.astype('datetime64[D]'),
row['clo'].values.astype('datetime64[D]')
if pd.isnull(row['clo'])
else '',
axis=1
))
错误是KeyError: 'due'
这在下面有效,但不确定是否加入:
p_df = data_raw[pd.notna(data_raw.clo)]
p_df['perf'] = np.busday_count(p_df['due'].values.astype('datetime64[D]'), p_df['clo'].values.astype('datetime64[D]'))
【问题讨论】:
标签: python-3.x numpy derived-column