본문 바로가기
파이썬

파이썬 오프셋 롤 포워드 후 월 오프셋 추가 후 pandas 범위를 벗어난 나노초 타임 스탬프

by º기록 2020. 11. 15.
반응형

팬더가 다음 줄을 사용하여 datetime 객체의 범위를 벗어난 방식을 혼란스럽게합니다.

import pandas as pd
BOMoffset = pd.tseries.offsets.MonthBegin()
# here some code sets the all_treatments dataframe and the newrowix, micolix, mocolix counters
all_treatments.iloc[newrowix,micolix] = BOMoffset.rollforward(all_treatments.iloc[i,micolix] + pd.tseries.offsets.DateOffset(months = x))
all_treatments.iloc[newrowix,mocolix] = BOMoffset.rollforward(all_treatments.iloc[newrowix,micolix]+ pd.tseries.offsets.DateOffset(months = 1))

여기서 all_treatments.iloc [i, micolix] pd.to_datetime (all_treatments [ 'INDATUMA'], errors = 'coerce', format = '% Y % m % d에 의해 설정된 날짜 / 시간입니다. ') , INDATUMA 20070125 형식의 날짜 정보입니다.

이 논리는 모의 데이터 (오류 없음, 날짜가 의미가 있음)에서 작동하는 것처럼 보이므로 현재 다음 오류로 전체 데이터에서 실패하는 동안 재현 할 수 없습니다.

pandas.tslib.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 2262-05-01 00:00:00

 

해결 방법

 

pandas는 나노초 해상도로 타임 스탬프를 나타내므로 64 비트 정수를 사용하여 나타낼 수있는 시간 범위는 약 584 년으로 제한됩니다.

pd.Timestamp.min
Out[54]: Timestamp('1677-09-22 00:12:43.145225')

In [55]: pd.Timestamp.max
Out[55]: Timestamp('2262-04-11 23:47:16.854775807')

그리고 당신의 값은이 범위를 벗어났습니다 2262-05-01 00:00:00 따라서 범위를 벗어난 오류


 

참조 페이지 https://stackoverflow.com/questions/32888124

 

 

반응형

댓글