MINERVA/Python 2024. 6. 6. 16:42
반응형

보통 시간 데이타의 경우 datetime 타입을 사용하게 되는데, 특이(?)하게 데이타 값은 시간형식인데 데이타 타입이 문자열인 경우가 있습니다. 이런 경우 해당 컬럼을 기반으로 시간 필터링을 해야하는 경우 타입 변환을 필요로 하게 됩니다.

 

이런 케이스를 위해 예제 코드입니다.

 

import pandas as pd

data = {
    'time': ['09:05:43', '12:30:00', '15:45:20', '08:15:10', '10:30:00']
}
df = pd.DataFrame(data)

# 시간 문자열을 datetime으로 변환 (시간 형식 명시)
df['time'] = pd.to_datetime(df['time'], format='%H:%M:%S').dt.time

# 필터링할 시간 범위 설정
start_time = pd.to_datetime('09:00:00', format='%H:%M:%S').time()
end_time = pd.to_datetime('12:00:00', format='%H:%M:%S').time()

# 시간 범위로 필터링
filtered_df = df[(df['time'] >= start_time) & (df['time'] <= end_time)]

print(filtered_df)

 

코드 구성은 다음과 같습니다.

1. 시간 문자열을 datetime 타입 객체로 변환하고,

   ' dt.time'을 사용해서, datetime 객체에서 시간(time)만 추출

2. 필러링을 위한 시간 설정

 

주어진 시간 형식의 문자열을 시간 객체로 변환하고,특정 시간 범위 내의 데이터만 필터링하는 방법을 보여줍니다.

 

 

 

 

반응형
posted by choiwonwoo
: