반응형
모든 데이터 분석에서는 반드시 데이터 전처리 과정이 필요하다. 데이터 전처리 과정은 많은 시간이 필요합니다. 데이터 전처리과정은 데이터 분석 결과 및 모델링이 직접적인 영향을 미치는 과정이므로 매우 중요합니다.
데이터 과학자에게
전처리과정의 작업비중이 60% 이다.
데이터 불러오기 및 결측치 확인
- 데이터 파일을 불러오고, info()메소드를 이용하여 행과 컬럼수를 확인할 수 있습니다. 또한 결측치가 있는지도 확인할 수 있습니다
#데이터 파일을 불러오고, 데이터 확인
df = pd.read_csv('/content/drive/MyDrive/kaggle_data/Data Carrard et al. 2022 MedTeach.csv')
df.head()
df.shape #컬럼과 행을 확인함
df.info() #컬럼별 데이터타입 확인
#print(f"The dataset has {df.shape[0]} rows and {df.shape[1]} columns.")
|
- isnull().sum()은 결측치가 몇개 있는지 확이할 수 있습니다. 만약에 결측치가 있다면 반드시 결측치를 처리해야 합니다. 실습데이터는 결측치가 없습니다.
df.isnull().sum() #결측치가 몇개 있는지 확인
|
결측치 처리하는 방법
- 결측치가 있다면 결측치 처리하는 방법은 다양하지만, 일반적으로 많이 활용되는 방식은 다음과 같습니다.
1) 결측치 사례를 제거 : drop() 함수 사용
2) 계량형 데이터 인 경우는 평균값 및 중앙값으로 대체
3) 예측모엘로 대체하는 방식
df['mbi_ea'] = df['mbi_ea'].fillna(df.mbi_ea.mean()) # 결측치 부분을 평균으로 대체
# 만약 결측치가 문자열 스페이스(' ')로 되어 있다면, np.nan으로 바꾸어 Pandas 라이브러리가 인식할수 있도록 변환
df.viewCount = df.viewCount.replace('', np.nan)
# 결측치를 제거하는 방법
df.dropna(how='all').head() # 한 행이 모두 missing value이면 제거
df.dropna(how='any').head() # 한 행에서 하나라도 missing value가 있으면 제거
|
이상치 처리
일반적으로 1) 표준점수로 변환 후 -3 이하 및 +3 제거 2) IQR 방식 3) 도메인 지식 이용하여 처리하는 방식이 이용된다. 표준점수 이용할 경우 평균이 0, 표준편차가 1인 분포로 변환한후 +3 이상이거나 -3 이하인 경우 극단치로 처리합니다.
'데이터분석 > 데이터 탐색' 카테고리의 다른 글
다양한 데이터 스케일링(Data Scaling) (0) | 2023.11.05 |
---|---|
교차분석과 상관분석 (0) | 2023.10.03 |
데이터 분석의 시작은 데이터 탐색이다. (0) | 2023.09.30 |
두 변수 간의 관련성에 대한 이야기 (0) | 2023.09.27 |