__Python
[에러해결] datetime | hour 24:00:00 변환 오류
KL_
2021. 6. 2. 11:49
Problem with converting to 'datetime' type:
ValueError: hour must be in 0..23.
[문제]
시계열 자료에서 시간 데이터는 datetime 처리 후 작업을 하는데,
간혹 데이터 중에 시간 부분이 '24시'로 표현되어 있어 datetime 변환 시 에러가 발생하는 경우가 있다.
예를 들면, '2021-06-01 24:00:00' 은 다음일자 0시인 '2021-06-02 00:00:00' 형태여야 변환이 가능하다.
[해결]
for df in [data]:
df['time'] = df['time'].apply(lambda x: pd.to_datetime(x.split()[0]) + timedelta(days=1) if x.split()[1]=='24:00:00' else x)
df['time'] = pd.to_datetime(df['time'])
- 시간피쳐에 lambda 함수를 적용
- 시간 값을 split하면(datetime 변환 전 = str type) [0]번째에는 날짜가, [1]번째에는 시간이 들어간다.
- 시간(split[1] )값이 24시라면 ->
날짜(split[0] )값만 'datetime'형식으로 변환 후 timedelta를 이용해 하루(1day)를 더해주면 된다. (pd.to_datetime('2021-01-04') => 결과: '2021-01-04 00:00:00 이므로)
- 시간(split[1] )값이 0~23시라면 -> 그대로 둔다.
#파이썬 시간더하기 #파이썬 시간데이터 다루기 #24시 datetime
728x90