특정 조건 데이터 필터링

40 P
QUESTION 12 #335
데이터셋에서 기온(0번 인덱스)이 25도 이상인 데이터의 판매량(y)만 추출하려고 합니다. 조건문을 완성해 보세요.
main.py
dataset = [[20, 70, 50], [25, 80, 80], [30, 85, 110]]
hot_y = []

for row in dataset:
    if row[0]  25:
        hot_y.append(row[2])

print(hot_y)
실행 결과 예시
[80, 110]
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

🧪 데이터 필터링

모든 데이터를 다 사용하는 것이 아니라, 특정 조건에 맞는 데이터만 골라내어 모델을 학습시켜야 할 때가 있습니다.


기본 필터링 패턴

dataset = [[20, 70, 50], [25, 80, 80], [30, 85, 110]]
hot_y = []

for row in dataset:
    if row[0] >= 25:      # 조건: 기온 25도 이상
        hot_y.append(row[2])  # 판매량만 추출

print(hot_y)  # [80, 110]

단계별 실행 과정

반복 row row[0] (기온) 조건 (>= 25) 결과
1회 [20, 70, 50] 20 False 건너뜀
2회 [25, 80, 80] 25 True 80 추가
3회 [30, 85, 110] 30 True 110 추가

리스트 컴프리헨션으로 간결하게

# for문 방식
hot_y = []
for row in dataset:
    if row[0] >= 25:
        hot_y.append(row[2])

# 리스트 컴프리헨션 방식 (동일한 결과)
hot_y = [row[2] for row in dataset if row[0] >= 25]

다양한 필터링 조건

# 기온 25도 이상 AND 습도 80 이상
filtered = [row for row in dataset if row[0] >= 25 and row[1] >= 80]

# 판매량 100 미만인 데이터만
low_sales = [row for row in dataset if row[-1] < 100]

# 기온이 20도 또는 30도인 데이터
specific = [row for row in dataset if row[0] in [20, 30]]

머신러닝에서의 필터링 활용

상황 필터링 조건 이유
이상값 제거 판매량 > 1000 제외 비정상 데이터가 학습을 방해
특정 기간 추출 날짜 >= 2024-01-01 최근 데이터만 학습
결측치 제거 값 != None 빈 데이터는 학습 불가

데이터 필터링은 데이터 전처리의 핵심 단계이며, 좋은 필터링이 좋은 모델을 만듭니다.