Python
데이터 전처리에 최빈값 (mode) 적용하기
현무랑 니니
2022. 11. 21. 18:04
반응형
pandas.DataFrame.mode() 사용하기
mode 함수는 주어진 데이터셋의 행/열의 가장 자주 나타나는 값인 최빈값을 구하는 함수이다.
최빈값이 여러개일 경우 모두 표시한다.
이 때, 최빈값 이외의 값은 NaN을 출력한다.
사용 예::titanic의 학습 데이터셋에 mode() 사용하기
데이터셋은 kaggle에서 다음과 같이 받으면 된다.
info() 함수와 describe()함수를 이용하여 확인한 타이타닉 학습 데이터의 기본 정보는 다음과 같다.
먼저 Cabin 열의 고유한 항목 수를 value_counts() 함수로 확인한다.
print(train['Cabin'].value_counts())
output>>>
B96 B98 4
G6 4
C23 C25 C27 4
C22 C26 3
최빈값을 찾아주는 mode()함수를 Cabin 열에 적용한 결과를 보자.
print(train['Cabin'].mode())
output>
0 B96 B98
1 C23 C25 C27
2 G6
value_counts() 함수와 동등한 결과를 출력한다.
단, 정렬 순서는 차이가 있다.
PassengerId 열과 Name 열을 뺀 데이터 셋에 mode()함수를 적용한 결과에서 최빈값 이외는 NaN으로 표시된다.
X_train = train.drop(['PassengerId', 'Name'], axis=1)
print(X_train.mode())
output>
Survived Pclass Sex Age SibSp Parch Ticket Fare Cabin \
0 0.0 3.0 male 24.0 0.0 0.0 1601 8.05 B96 B98
1 NaN NaN NaN NaN NaN NaN 347082 NaN C23 C25 C27
2 NaN NaN NaN NaN NaN NaN CA. 2343 NaN G6
Embarked
0 S
1 NaN
2 NaN
Cabin열은 결측치가 많으므로 mode()함수로 결측치를 최빈값으로 채울 수 있다.
반응형