Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 데이터 전처리
- Data Analysis
- 파이썬
- kaggle
- 코딩테스트
- 데이터분석
- 데이터전처리
- 캐글
- 코테
- 데이터구조
- dataframe
- mysql
- get_dummies
- numpy
- SQL
- 아마존
- 전처리
- 시각화
- 프로그래머스
- EDA
- pandas
- code
- 불리언
- Python
- 데이터사이언스
- 머신러닝
- 연산자
- data science
- machinelearning
- 데이터과학
Archives
- Today
- Total
Road to Data Scientist
데이터 전처리_Data Preprocessing_IBM DATA SCIENCE 본문
IBM DATA SCIENCE 내용 정리
'?' 데이터 NaN으로 바꾸기
import numpy as np
df.replace('?',np.nan, inplace=True)
- numpy 설치
- 데이터셋 앞에서 df 로 저장했다는 가정하에 진행
데이터가 존재하지 않는 (Null) 셀 찾기
missing_data = df.isnull() #missing_data 변수에 해당 데이터셋을 NUll값 존재 유무로 보여줌
missing_data.head()
- df.isnull() : 해당 셀이 Null --> True / not Null --> False 반환
Null 값인 데이터 개수 알아보기
for column in missing_data.columns.values.tolist():
print(column)
print(missing_data[column].value_counts())
print("")

- missing_data.columns.values.tolist(): missing_data 의 열(헤더)들의 이름을 리스트로 만들어달라는 뜻
>>ex: 데이터의 열(헤더) 이름들이 A, B, C인 경우 [A, B, C] 로 만들어짐
- missing_data[column].value_counts(): 해당 열이 갖고 있는 값들이 각각 몇 개인지 개수 알려달라는 뜻
>>ex: 아래의 표의 경우
| A | B | C |
| 1 | 2 | 1 |
| 1 | 2 | 1 |
| 0 | 0 | 0 |
A : 1 - 2개, 0 - 1개 // B : 2 - 2개, 0 - 1개 // C : 1 -2개, 0 - 1개
- 즉, missing_data 의 열(헤더) 이름과
Column(열)의 mean값 구하고 NaN 셀 해당 값으로 바꾸기
# 'bore' column 의 mean 값
avg_bore = df['bore'].astype('float').mean(axis=0)
# NaN 값 mean 값으로 바꾸기
df["bore"].replace(np.nan, avg_bore, inplace=True)
- df['bore'] : df 데이터의 'bore' 열
- astype('float') : 데이터 타입을 float 형태로 바꾸기
- mean(axis=0): mean 값을 구하는데, axis=0 열 기준으로 구하라(세로로)
NaN 값 최다빈도수값으로 바꾸기
# 'num-of-door' 열에서 최다 빈도수 값 찾기
df['num-of-doors'].value_counts.idxmax()
# 'four' 반환
# NaN 값 바꾸기
df["num-of-doors"].replace(np.nan, "four", inplace=True)
NaN 값이 있는 열 삭제하기
# price 열에 NaN 이 있을 때 해당 행(row) 삭제하기
df.dropna(subset=["price"], axis=0, inplace=True)
#reset index (위에서 행 삭제했으니까)
df.reset_index(drop=True, inplace=True)
- drop=True : 기존 인덱스 출력하지 않고 새로 인덱스 만들어서 출력
'코딩 테스트 > Python' 카테고리의 다른 글
| 데이터 탐색 및 시각화_EDA_Visualization (0) | 2024.03.26 |
|---|---|
| 데이터 탐색_EDA_.head/.describe/.info/.dtype/.isna/.unique/.nunique (0) | 2024.03.26 |
| 데이터 전처리_Data Preprocessing(get_dummies)_IBM DATA SCIENCE (0) | 2024.01.28 |
| 데이터 불러오기_Data Load/Read_IBM DATA SCIENCE (0) | 2024.01.27 |