반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

데이터 전처리에 최빈값 (mode) 적용하기 본문

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()함수로 결측치를 최빈값으로 채울 수 있다.

반응형
Comments