[혼공 데이터 분석] chapter 3.

회색몽구스·2023년 7월 20일
0
post-thumbnail

세 줄 요약:

이번 챕터는 판다스의 데이터프레임을 이용하여 데이터를 정제하고 없는 값들을 채워 넣는 과정을 거친다.
우리 혼공분석님은 얼마나 열심히 판다스 공식 문서를 열심히 뒤져 봤을꼬...
지난 챕터의 웹 API를 사용하고 웹에서 데이터를 긁어 오는 것도 중요해 보였지만, 개인적으로 이번 챕터가 가장 중요해 보이고 어려웠다.

03. 데이터 정제하기

03-1 불필요한 데이터 삭제하기

열 삭제하기

loc 메서드와 불리언 배열

  • 이 점이 판다스가 많이 편한 점이고 직관적인 이유인 것 같습니다!
  • 그리고 이 판다스 때문에 파이썬이 인기가 있는 이유 중의 하나이겠지요?

판다스 배열 성격의 객체는 어떤 값과 비교할 때 원소별 비교를 이용하여 자동으로 배열에 있는 모든 원소와 하나씩 비교

drop() 메서드

판다스에서 데이터 프레임의 행이나 열을 삭제 (axis=1로 지정하면 열 삭제)
inplace=True 매개변수: 현재 선택한 데이터프레임을 바로 수정

dropna() 메서드

기본적으로 NaN이 하나 이상 포함된 행이나 열을 삭제
how='all' 모든 값이 NaN인 열을 삭제

행 삭제하기

[ ] 연산자와 슬라이싱

[ ] 연산자에 슬라이싱이나 불리언 배열을 전달하면 행을 선택

[ ] 연산자와 불리언 배열

  • 행을 선택할 때 가장 즐겨 사용하는 방법

중복된 행 찾기

duplicated() 메서드 - 기본적으로 데이터프레임에 있는 모든 열을 기준으로 중복된 행을 찾습니다.
subset 일부 열을 기준으로 중복된 행을 찾기 위해 기준 열을 리스트로 전달
keep=False 중복된 모든 행을 True로 표시

그룹별로 모으기

groupby() 메서드에 by 매개변수에 행을 합칠 때 기준이 되는 열을 지정
NaN이 포함되어 있는 행이 합계에서 빠지는 것을 막기 위해 dropna=False 전달

원본 데이터 업데이트하기

~ 연산자와 copy() 메서드를 사용하는 방법 배우기!

원본 데이터프레임 인덱스 설정하기

set_index() 메서드를 사용하여 지정한 열을 인덱스로 설정
inplace=True 매개변수를 전달하면 새로운 데이터프레임을 반환하지 않고 기존 데이터프레임을 수정

update() 메서드

업데이트가 제대로 되었다면 인덱스 열을 해제 reset_index() 메서드
다 정제 후 기존 데이터프레임과 동일한 지 비교 - equals() 메서드

03-2 잘못된 데이터 수정하기

데이터프레임 정보 요약 확인하기

info() 메서드

누락된 값 처리하기

누락된 값 개수 확인하기: isna() 메서드

누락된 값으로 표시하기: None과 np.nan

데이터 타입을 지정할 때 astype() 메서드

누락된 값 바꾸기(1): loc, fillna() 메서드

fillna() 메서드에 원하는 값을 전달하면 NaN을 대체할 수 있습니다.

누락된 값 바꾸기(2): replace() 메서드

replace() 메서드는 NaN은 물론 어떤 값도 바꿀 수 있는 편리한 메서드!

replace(원래 값, 새로운 값)
replace([원래 값1, 원래 값2], [새로운 값1, 새로운 값2])
replace({열 이름: 원래 값}, 새로운 값)

정규 표현식

숫자 찾기: \d

replace() 메서드에 regex=True 매개변수 전달

문자 찾기: .

잘못된 값 바꾸기

판다스 시리즈 객체는 str 속성 아래 다양한 문자열 처리 함수를 제공하는 데, 그중 contains() 메서드는 시리즈나 인덱스에서 문자열 패턴을 포함하고 있는지 검사
na=True로 지정하여 누락된 행을 True로 표시

누락된 정보 채우기

requests 패키지와 BeautifulSoup 패키지를 이용

profile
끄아아아아 할 수 있다

2개의 댓글

comment-user-thumbnail
2023년 7월 20일

많은 도움이 되었습니다, 감사합니다.

1개의 답글