Error

[에러노트/파이썬] TypeError: cannot subtract DatetimeArray from ndarray

weweGH 2025. 4. 16. 09:00
반응형

type_error
type_error


TypeError: cannot subtract DatetimeArray from ndarray

에러노트: 제가 직접 겪었던 에러와 해결 방법에 대해 소개합니다.

에러


파이썬에서 날짜/시간 데이터의 차이를 계산하려고 하는데, 다음과 같은 에러가 발생했다. 

TypeError: cannot subtract DatetimeArray from ndarray

df['date_time_sub'] = (df['date_time_now'] - df['date_time_rev']).astype('timedelta64[s]')

error
error

반응형

해결


info로 데이터 타입을 확인한 결과 date_time_rev 컬럼은 datetime 타입이고, date_time_now는 object 타입이었다.

df.info()

df info
df info


날짜 차이를 계산하려는 date_time_rev와 date_time_now의 데이터 타입이 달라서 발생한 에러였다. date_time_now를 pandas의 to_datetime으로 타입 변환을 하고, 다시 시간 차이 계산을 했다. 해결 완료:)

df['date_time_now'] = pd.to_datetime(df['date_time_now'])
df['date_time_sub'] = (df['date_time_now'] - df['date_time_rev']).astype('timedelta64[s]')
df[['date_time_rev', 'date_time_now', 'date_time_sub1']].head()
df.head()

substract date_time_sub1
substract date_time_sub1


덧붙여서, 위의 결과에서 date_time_sub1은 초단위로 계산한 결과이다. date_time_rev와 date_time_now의 차이를 '일' 기준으로 나타내고 싶다면, dt.days를 활용해야 한다.

df['date_time_sub2'] = (df['date_time_now'] - df['date_time_rev']).dt.days
df[['date_time_rev', 'date_time_now', 'date_time_sub2']].head()

subtract date_time_sub2


반응형