1. 좋은데이터 기준
1 - 1. 완결성
필수적인 데이터는 모두 기록되있어야 한다.
결측값: 채워져야 하는데 비어있는 값이다. 데이터프레임에서 NaN으로 표시된다.
1 - 2. 유일성
값이 중복되면 안된다.
1 - 3. 통일성
데이터가 동일한 형식으로 저장되어 있어야 한다.
ex) kg, lbs, 띄어쓰기, 표기법 등등....
1 - 4. 정확성
이상점: 박스그래프때도 잠깐 언급했었다. 정상적인 범주를 벗어나, 자료분석에 방해가 되는 데이터를 말한다.
2. 데이터 클리닝
2 - 1. 완결성
결측값은 NaN으로 뜬다고 했다. 보자
변수.isnull() 결측값이 true라고 나온다.
변수.isnull().sum() 각 칼럼의 결측값 갯수를 말해준다.
변수.dropna() 이면 결측값을 제거한다. ( ) 안에 inplace = True를 적으면, 기존 데이터를 변경해주는 것이며, 하지 않으면 새로운 변수로 정의를 해줘야 한다.
변수.dropna(axis = 'columns') 이면, 결측값이 있는 칼럼이 사라진다.
변수.fillna(x) 이면 결측값을 x에 있는 값으로 바꿔준다. 0을 넣으면 다 0으로 바뀐다. 하지만 보통 평균값을 집어넣기때문에, 변수.fillna(변수.maen()) 식으로 많이 한다.
2 - 2. 유일성
유일성은 중복이 되면 안된다고 했다.
- row 값이 겹치는 경우
변수.index.value_counts() 를 입력하면, row값의 갯수가 나오는데, 이때 1이아닌 2가 있다면, 중복된 값이 있는것이다.
변수.drop_duplicates() 를 입력시, 알아서 중복된 값이 있는 row를 삭제한다.
- coulmn값이 겹치는 경우
변수.T 를 입력하면 row와 column값이 바뀌어서 나온다. 거기에 똑같이 drop_duplicates() 를 입력해준후 다시 .T를 입력하여 원래대로 해준다.
변수.T.drop_duplicates().T 이렇게 입력하면, 알아서 중복된 column을 삭제해준다.
2 - 3. 정확성
박스그래프 모양을 기억할것이다. 거기서 이상점은 동그라미로 표시가 됬었다.
여기서 日로 생긴것이 25% ~ 75% 지점이며 IQR이라고 한다. 그리고 길게 대문자 I 처럼 뻗은것이 각각 1.5 X IQR한 것들이며, 이상점들은 그것을 벗어나는 값이다.
변수['특정column값'].describe() 를 통해 25% 50% 75% 등의 값을 확인 가능하다.
변수['특정column값'].quantile(0.25) 를 입력해서 25%의 값을 확인 가능하다. 75%값 또한 마찬가지.
이것을 활용하여 IQR을 구할 수 있는데, 0.75 - 0.25를 해주면 확인가능하다.
IQR = 0.75값 - 0.25 값
그렇다면 이상점 또한 식으로 나타낼 수 있다.
이상점 = (변수['칼럼값']<0.25값 - 1.5 * IQR) | (변수['칼럼값']>0.75값 + 1.5 * IQR)
(여기서 |는 \키를 shift누르면 되고, 명제에서 '또한'이란것을 이걸로 표현한다. )
'코딩 > Jupyter' 카테고리의 다른 글
데이터 분석과 시각화, Seaborn, 그래프의 유형, 통계 #5 (0) | 2021.02.09 |
---|---|
DataFrame 다루기 #4 (0) | 2021.02.04 |
Pandas 기본 #3 (0) | 2021.02.03 |
Numpy 기본 #2 (0) | 2021.02.03 |
Jupyter 주피터 설치, 설치 에러, Jupyter 검은화면 실행 오류 해결하는 방법 cell 다루기 기본적 입력방법 #1 (5) | 2021.02.02 |