본문 바로가기

Python

numpy.busday_count 넘파이 영업일 계산 에러

잔존만기를 계산하기 위해서 영업일을 구하는 함수로 인자가 deprecated 되버린듯.

def time_m_day(t0,T,y=252):
    t0 = pd.to_datetime(t0)
    T = pd.to_datetime(T)
    return (np.busday_count(t0,T)/y)

Iterator operand 0 dtype could not be cast from dtype('<M8[us]') to dtype('<M8[D]') according to the rule 'safe'


def time_m_day(t0,T,y=252):
    return (np.busday_count(t0,T)/y)

pandas의 datastamp로 변환하지 않고 바로계산

 

 

 

날짜간의 계산이 아닌 데이터 프레임의 인덱스 열이 pd.to_datetime()으로 변환된 후라면

행데이터를 잡고 .name으로 인덱스를 .date()로 timestamp로 변환후 계산

np.busday_count(데이터프레임.iloc[i,:].name.date(), 날짜계산대상)