결측값
Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 45번째.
실제 데이터에는 결측값이 있습니다. 센서가 고장 나거나 퀴즈를 놓칠 수 있습니다. pandas는 비어 있는 각 셀을 "숫자가 아님"을 뜻하는 NaN으로 표시합니다:
대부분의 모델은 NaN을 처리하지 못하므로, 먼저 결측값의 개수를 세세요. .isna()는 각 결측값을 True로 표시하고, .sum()은 그 개수를 셉니다.
scores = pd.DataFrame({
"name": ["Ana", "Ben", "Cy", "Dee"],
"quiz1": [8, np.nan, 7, 9], # np.nan은 누락된 값입니다
"quiz2": [6, 5, np.nan, np.nan],
})
print(scores.isna().sum())다음이 출력됩니다:
name 0
quiz1 1
quiz2 2
dtype: int64그런 다음 선택하세요: dropna()는 빈칸이 있는 모든 행을 삭제하고, fillna(0)은 각 빈칸에 0을 씁니다. 둘 다 새 테이블을 반환하므로 저장하세요.
통계에서는 NaN을 건너뜁니다. quiz1의 평균은 확인된 세 점수로 계산한 8.0입니다.
챌린지
중급피트니스 트래커에서 일부 측정값이 tracker.csv에 기록되지 않았습니다. 학습에 앞서, 결측값을 처리하는 각 방법이 평균 sleep에 어떤 영향을 주는지 확인해 보세요. 시작 코드는 채우기에 사용할 값인 hours를 읽습니다.
- 각 열의 결측값 개수를 출력하세요.
- 결측값을 건너뛴 경우, 어느 열에도 결측값이 없는 날짜만 사용한 경우, 결측값을
hours로 채운 경우의 평균 수면 시간을 각각 소수점 2자리까지 반올림해 출력하세요.
다른 트래커와 8을 사용하면:
day 0
steps 1
sleep 2
water 0
dtype: int64
Skipping gaps: 6.9
Complete days only: 7.0
Gaps filled with 8.0: 7.21직접 해보기
import pandas as pd
tracker = pd.read_csv("tracker.csv")
hours = float(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
데이터와 시각화의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러