numpy busday_count для разности дней дает TypeError: от dtype ('<M8 [us]') до dtype ('<M8 [D]') в соответствии с правилом 'safe' " - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь вычислить количество дней между двумя датами, и я получаю сообщение об ошибке

TypeError: ("Iterator operand 0 dtype could not be cast from dtype('<M8[us]') to dtype('<M8[D]') according to the rule 'safe'", 'occurred at index 0')

В столбце REASSIGN_DATE есть пустые значения в нескольких строках, которые я заполняю, используя другой столбецвызвал SETUP_DATE, чтобы удалить и очистить значения и заполнить дату.

Затем я пытаюсь вычислить число дней между этими двумя днями, используя следующий код.

import pandas as pd
import numpy as np
import datetime
from datetime import date
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
import xlrd
import workdays
import defusedxml
from xlrd import open_workbook
defusedxml.defuse_stdlib()


def secure_open_workbook(**kwargs):
    try:
        return open_workbook(**kwargs)
    except EntitiesForbidden:
        raise ValueError('Please use a xlsx file without XEE')


#loading Raw Data
releases = pd.read_excel(r'C:\Desktop\Releases.xlsx',
                     sheet_name = 'Releases',
                     header = 0
                     )
releases.loc[releases['REASSIGN_DATE'].isnull(),'REASSIGN_DATE']=releases['SETUP_DATE']
releases['REASSIGN_DATE']=pd.to_datetime(releases['REASSIGN_DATE'])
releases['RELEASED_DATE']=pd.to_datetime(releases['RELEASED_DATE'])
releases['RELEASED_DAYS']=releases.apply(lambda x: 
np.busday_count(x.REASSIGN_DATE,x.RELEASED_DATE),axis =1)

releases_2=releases.drop(['SETUPDATE','RELEASEDDATE','REASSIGNDATE'],axis=1)

Я получаю ошибку.

Я даже пытался добавить astype ('datetime64 [D]')), однако я получаю сообщение об ошибке: astype ('datetime64 [ns]') нельзя преобразовать в astype ('datetime64 [D]').

Как мне избежать этой ошибки.

С уважением, Рен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...