✅혼자 공부하는 데이터 분석 with 파이썬
진도 : Chapter 03
실습파일 : Library.ipynb
(완료) 기본 미션 : p. 182의 확인 문제 2번 풀고 인증하기
() 선택 미션 : p. 219의 확인 문제 5번 풀고 인증하기
✅Chapter 03-1 불필요한 데이터 삭제하기
데이터 정제 (data cleaning) : 결측값 & 이상치 처리
데이터 랭글링 (data wrangling), 데이터 먼징(data munging) : 데이터 정제, 구조화 및 조작
원소별 비교 (element-wise comparison) : 판다스 배열 성격의 객체가 어떤 값과 비교할 때 자동으로 배열에 있는 '모든 원소마다' 하나씩 비교해주는 것.
[열 삭제하기]
selected_columns = df.columns != 'Unnamed: 13'
ns_book = df.loc[:, selected_columns]
ns_book.head()
ns_book = df.drop(['부가기호', 'Unnamed: 13'], axis=1)
ns_book.head()
# inplace 메서드는 바로 덮어쓰기 가능
df.drop(['부가기호', 'Unnamed: 13'], axis=1, inplace=True)
ns_book.head()
# inplace 메서드는 바로 덮어쓰기 가능
#하나라도 NaN 값 있으면 삭제
ns_book = df.dropna(axis=1)
#모든 값이 NaN인 경우만 삭제
ns_book = df.dropna(axis=1, how='all')
[행 삭제하기]
drop()
행을 나타내는 'axis=0'이 기본 값이므로, 생략 가능하다.
ex) df.drop([0,1])
[]연산자와 슬라이싱
ex) df = df[2:] 이 경우는 2행부터 마지막 행까지 선택
ex) df = df[0:2] 이 경우는 0,1행만 선택
[]연산자와 불리언 배열 - 특정 조건 줄 때 ☆☆☆
ex) ns_book2 = df[df['출판사'] == '한빛미디어']
중복 행 찾기 : duplicated() / 중복 행 삭제 : drop_duplicates()
중복된 행 - 처음 행은 False, 나머지 행은 True(중복)
중복되지 않은 행들 - False
#sum 함수는 True=1로 인식한다.
sum(df.duplicated()) : 중복 개수 알 수 있다.
#subset 매개변수는 기준 열을 지정한다.
sum(df.duplicated(subset=['도서명','저자','ISBN']))
#keep 매개변수는 중복값 불리언배열을 조정한다.
>keep='first' : 기본값. 중복행 집합 처음만 'False', 이후 'True'
>keep='False' : 모든 중복행 집합을 'True'로 표시
dup_rows = df.duplicated(subset=['도서명','저자','ISBN'], keep=False)
ns_book3 = df[dup_rows]
그룹화 : groupby()
groupby(by=행을 합칠 '기준 열', dropna=NaN행 삭제여부)
원본데이터 업데이트
일괄처리 함수 만들기
✅Chapter 03-2 잘못된 데이터 수정하기
NaN
정규 표현식