데이터 분석 전 아주 기본적인 전처리를 해봅시다!
데이터 전처리에 앞서.
전체적인 순서를 정리해보면 아래와 같습니다. (코랩기준!!)
-사실 간단한 전처리는 코랩보다 jupyter notebook으로 로컬에서 직접 작업하는 것이 좀 더 편리한 것 같습니다.
1. 내 로컬 파일을 Colab에 업로드하기
dkfl8151.tistory.com/4?category=831673
Colab환경에서 데이터 분석 진행하기! (데이터 불러오기)
chrome.google.com/webstore/detail/open-in-colab/iogfkhleblhcpcekbiedikdehleodpjo Open in Colab Open a Github-hosted notebook in Google Colab chrome.google.com colab이란 ? 줄여서 'Colab'이라고도 하는..
dkfl8151.tistory.com
# 데이터 불러오기
import pandas as pd
df = pd.read_csv('파일명.csv')
#엑셀이라면
df = pd.read_excel('파일명.xslx')
2. 결측치가 있는지 isnull()함수를 이용하여 확인하고 결과값 확인
#df 는 dataframe의 약자. 자기가 설정해주면 된다.
df.isnull()
True -> 결측치 존재O
False -> 결측지 존재X
3. 정확히 결측치에 대한 정보알기 / 컬럼별 결측치 개수파악
df.isnull().sum()
4. 데이터 타입 확인하기
(분석 모델을 돌리기 위해서는 데이터 타입이 int또는 float와 같은 숫자로 되어 있어야한다!!)
df.dtypes()
object가 꽤 많은데 여기서 주의할 점은 숫자형으로 변환 가능한 것들은 숫자로 바꿔줘야한다는것 !
주로 함수를 따로 만들어서 가능하다 (물론, 문자를 숫자로 바꾸는게 불가능하다. 엑셀로 숫자를 입력한 경우 불러왔을 때 object로 읽히는 경우가 많다. 그런경우는 전처리 과정에서 꼭꼭 바꿔주어야 한다!)
5. 숫자형으로 변환
여기서는 TotalCharges를 숫자로 바꿔보겠다 !!
#obj을 int형으로~
def to_int(obj):
obj = str(obj).replace(',',"")
return int(obj)
#함수를 적용할 때에는
df['특정컬럼'] = df['특정컬럼'].apply(to_int)
단 이 방법의 문제점이 존재한다.
만약 소수점이 존재하는 float 형이다? -> 안된다.
그럼
float로 바꿔야지!! 이럴텐데,
여기서 꼭 알아야 하는 점은
문자형은 float로 바꿀 수 가 없다 !!!
그래서 내가 오늘 사용할 방법은
문자열(str) 강제로 없애기 !
#데이터가 문자형인 부분을 강제로 Nan처리 해버리겠다는 얘기! 대신에 제외하고는 숫자형으로 변경된다!
df['TotalCharges'] = df['TotalCharges'].apply(pd.to_numeric, errors='coerce')
TotalCharges가 float64로 바뀐것을 확인할 수 있당~!
이 방법은.. 데이터 손실을 발생시킬 수 있으므로 특수한 경우에만 사용하자!
5.결측치 제거하기 (drop또는 바꾸기)
결측치를 저리하는 방법에는 무수히무수히 많다.
평균치로 넣어버리는 방법도 있고 . ,,등등
내가 오늘 사용할 것은 drop이다. (데이터가 사라져도 상관없을 경우에만)
df = df.dropna(axis=0)
#axis는 행인지 열인지 ..
#0-> 행
#1-> 열
바꾸기 or 채우기
#결측치 ()안에 있는 값으로 대체하기
df = df.fillna(0)
대략적으로 이렇게 마친다면.. 이제 Feature engineering을 할 준비가 된다!
'Data analysis > Data Process' 카테고리의 다른 글
Category_encoders / ML in Python / 범주형 변수 변환 (0) | 2021.02.15 |
---|---|
Scikit-learn/선형회귀(Linear Regression) in Python 예제 / 캐글(kaggle) 데이터 사용/Predictive Model (0) | 2021.02.14 |
Simple Regression/ 선형회귀(Linear Regression) (0) | 2021.02.14 |
Matrix Calculation(Matrix multiplication)/행렬의 연산 Python으로 구현하기 (0) | 2021.01.13 |
선형대수 in AI (벡터와 매트릭스vectors and Matrices)/python 파이썬 (0) | 2021.01.13 |