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]'))