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
:
MINERVA/Python 2024. 6. 6. 14:31
반응형

Python에서 문자열 객체를 비교할 때 is(is not) 연산자를 사용하는 것은 권장되지 않습니다.
대신 ==(!=) 연산자를 사용하는 것이 적절합니다 .

그 이유는 다음과 같습니다.
1.  'is(is not) 연산자': 객체의 reference를 비교합니다. 즉, 두 객체가 같은 메모리위치를 참조하는지를 확인합니다.
2. '==(!=) 연산자': 객체의 값을 비교합니다. 두 객체의 값이 동일한지를 확인합니다.

 

[예제]

a = "hello"
b = "hello"
c = "world"

print(a is not b)  # 이것은 False를 출력합니다. (같은 메모리 위치를 참조하기 때문)
print(a != c)  # 이것은 True를 출력합니다. (값이 다르기 때문)
반응형
posted by choiwonwoo
: