3. 데이터 정제하기
1) 불필요한 데이터 삭제하기
1-1) 열 삭제하기
(1) 불리언 배열
(2) drop() 메서드
(3) dropna() 메서드
1-2) 행 삭제하기
(1) 불리언 배열
(2) drop() 메서드
(3) 중복된 행 찾기, duplicated() 메서드
(4) 그룹별로 모으기, groupby() 메서드
(5) 원본 데이터 업데이트하기
(6) 일괄 처리 함수 만들기
1-1) 열 삭제하기
(1) 불리언 배열
- 데이터프레임에 저장된 열 출력
- 열 속성은 [Index 클래스] 객체로 리스트처럼 숫자 인덱스로 참조할 수 있음
- 모든 원소를 하나씩 비교하여 True or False로 이루어진 불리언 배열로 반환함
- 'Unnamed: 13' 열이 아닌 것은 True가 되고, True인 열만 출력됨

(2) drop() 메서드
- 첫 번째 매개변수에 삭제하려는 열 이름을 지정하고 axis 매개변수=1로 지정 (기본값은 0이며, 행을 의미)
- '부가기호'와 'Unnamed: 13' 열이 삭제됨
- [inplace 매개변수]를 True로 지정하면 새로운 변수 지정 없이 바로 적용 가능
(3) dropna() 메서드
- 판다스는 비어있는 값을 NaN으로 표시함
- NaN이 하나 이상 포함된 행 or 열을 삭제함

- [how 매개변수]를 'all'로 지정하면, 모든 값이 NaN인 열을 삭제함

1-2) 행 삭제하기
(1) 불리언 배열
- 불리언 배열로 원하는 행을 True로 만들어 사용함
- 출판사가 '한빛미디어'인 행만 출력함

(2) drop() 메서드
- 인덱스 0~1까지 2개의 행을 삭제함

(3) 중복된 행 찾기, duplicated() 메서드
- 중복된 행은 True로 표시됨 (즉, 두 번째 행)
- sum() 함수는 True를 1로 인식하기 때문에, 중복된 행의 개수를 셀 수 있음
- 모든 열 기준은 번호가 고유한 값을 갖기에 중복된 행이 나올 수 없고, [subset 매개변수]로 특정 열 기준의 중복 행을 확인함
- [keep 매개변수]를 False로 지정하여 중복된 모든 행을 True로 표시하여 출력함

(4) 그룹별로 모으기, groupby() 메서드
- 그룹별로 합칠 때 groupby()를 사용하며, [by 매개변수]에는 행을 합칠 때 기준이 되는 열을 지정함
- '도서명', '저자', 'ISBN'이 동일한 행을 합치고, [dropna 매개변수]를 False로 지정하여 NaN이 있는 행도 포함하여 대출권수를 더해서 출력함

(5) 원본 데이터 업데이트하기
① 중복 없는 고유한 행만 선택하기
- duplicated()로 중복 행 True 표시, 고유한 행 선택을 위해 [~ 연산자]로 배열을 반전시킨 후, [copy()]로 고유한 행 선택
② 원본 데이터프레임 인덱스 설정하기
- [set_index()]로 지정한 열을 인덱스로 설정하며, [inplace 매개변수]를 True로 지정하여 기존에 수정

③ 업데이트 하기, update() 메서드
- update()로 원본 데이터프레임 값 업데이트 (대출건수 합계)
- [reset_index()]로 인덱스 열 해제
- [] 연산자로 열 이름 순서를 지정
(6) 일괄 처리 함수 만들기
[혼공분석] #3-2. 잘못된 데이터 수정하기
3. 데이터 정제하기 2) 잘못된 데이터 수정하기 (1) 데이터프레임 정보 요약 확인하기 (2) 누락된 값 처리하기 (3) 정규 표현식 (4) 잘못된 값 바꾸기 (5) 누락된 정보 채우기 2) 잘못된 데이터 수정하
dataslog.tistory.com
'혼공학습단 > 혼자 공부하는 데이터 분석 with 파이썬' 카테고리의 다른 글
[혼공분석] #4. 데이터 요약하기 (1) | 2024.01.28 |
---|---|
[혼공분석] #3-2. 잘못된 데이터 수정하기 (1) | 2024.01.21 |
[혼공분석] #2-2. 웹 스크래핑으로 데이터 수집하기 (0) | 2024.01.14 |
[혼공분석] #2-1. API로 데이터 수집하기 (1) | 2024.01.14 |
[혼공분석] #1. 데이터 분석을 시작하며 (1) | 2024.01.05 |