Рабочие дни между двумя датами в Python - PullRequest
0 голосов
/ 18 марта 2020

У меня есть два столбца "Blk Start" и "Blk End" в кадре данных. Мне нужно создать 3-й столбец, рассчитав количество рабочих дней между двумя датами. Я использую приведенный ниже код, но он не работает

df[x] = np.busday_count(df['Blk_start'],df['Blk_end'])

Нужно ли использовать какую-либо другую функцию?

Ошибка приведенного выше кода:

TypeError Traceback (последний вызов был последним) в ----> 1 df [x] = np.busday_count (df ['Blk_start'], df ['Blk_end']) TypeError: Невозможно привести операнд итератора 0 dtype от dtype('<M8[ns]') до dtype('<M8[D]') в соответствии с правилом 'safe'

Форматы столбцов:

fundmgr_id   int64 
user_name    object 
Blk_start.   datetime64[ns] 
Blk_end      datetime64[ns] 

1 Ответ

1 голос
/ 18 марта 2020

np.busday_count говорит, что он работает на array_like от datetime64 [D] , поэтому вы можете сначала привести столбцы к этому формату, а затем выполнить операцию.

en = df["Blk_end"].values.astype('datetime64[D]')
st = df["Blk_start"].values.astype('datetime64[D]')
df["x"] = np.busday_count(st, en)
...