Home pandas를 이용한 데이터 전처리하기
Post
Cancel

pandas를 이용한 데이터 전처리하기

최근에 그동안 배웠던 것을 토대로 데이콘에서 데이터 예측 문제에 도전하고 있는데 그간 열심히 공부했던 것이 무색하게도 pandas의 메서드를 잘 알지도 못하고 데이터를 직접 전처리해본 일이 없었기 때문에 이 단계에서 한참을 헤멨습니다. 그래서 두 번은 헤메지 않으려 이번에 공부한 내용을 기록해 두려 합니다.

1. 데이터 불러오기

1
2
import pandas as pd
df = pd.read_csv('파일 경로')

2. 데이터 살펴보기

1
df.head()

head는 데이터프레임의 앞 5개 행을 표시합니다.

1
df.info()

데이터의 type, 특성, 개수 등을 확인합니다.

1
df.describe()

각 특성 별 4분위수, 평균, 표준편차 등 대푯값을 알려줍니다.

1
df['특성'].unique()

어떤 열에 속한 데이터의 모든 레이블을 출력합니다.

3. 결측치 파악하기

1
df.isnull().sum()

데이터의 어떤 특성에 몇 개의 null값이 있는지 표시합니다.

1
df[df.isna().sum(axis=1) > 0]

결측치가 있는 행을 모두 보여줍니다.

4. 결측치 처리하기

1
df.loc[df['특성'] != df['특성'], '특성'] = df['특성'].mean()

해당 특성의 평균으로 결측치를 채웁니다.

1
df = df.dropna()

결측치가 있는 행을 모두 삭제합니다.

5. 레이블 인코딩

1
2
3
4
from sklearn.preprocessing import LabelEncoder

encoder = LabelEncoder()
df['특성'] = encoder.fit_transform(df['특성'].values)

정수형이 아닌 특성의 자료들을 0, 1, 2, … 의 숫자로 바꿔 줍니다.

6. one-hot 인코딩

1
oh_df = pd.get_dummies(df['특성'])

레이블 인코딩의 단점을 보완할 수 있는 형태로, [0 0 0 0 1]과 같이 값이 속한 행렬에 1을 표시해줍니다. 이렇게 할 경우 가중치를 계산하는 알고리즘에서 0인 레이블보다 5인 레이블이 중요하게 여겨지는 현상을 방지할 수 있습니다.

7. 데이터 프레임끼리 더하기

1
df = pd.concat([df, oh_df], axis=1)

df의 오른쪽 행에 oh_df를 붙입니다.

8. 열 삭제하기

df = df.drop([‘특성’], axis=1)

입력한 특성이 데이터 프레임에서 삭제됩니다.

This post is licensed under CC BY 4.0 by the author.