본문 바로가기

카테고리 없음

[혼공데분 12기] 3주차 스터디 및 과제

반응형

3주차 계획

  • 커리큘럼
  • 일정 : 7/15 ~ 7/21
  • 진도 : Chapter 03
  • 기본 미션 : p. 182의 확인 문제 2번 풀고 인증하기
  • 추가 미션 : p. 219의 확인 문제 5번 풀고 인증하기

미션

기본 미션

위 df 데이터프레임에서 'col1' 열의 합을 계산하는 명령으로 올바르지 않은 것은 무엇인가요?

  • (1) df['col1'].sum()
  • (2) df[['col1']].sum()
  • (3) df.loc[:, df.columns == 'col1'].sum()
  • (4) df.loc[:, [False, False, True]].sum() - 정답

추가 미션

  1. 다음 df 데이터프레임에서 df.replace(r'ba.*', 'new', regex=True)의 결과는 무엇인가요?
  • 정답 : 1번
  • 이유 : 정규표현식 ba.*은 ba로 시작하면서 그 이후에 1개 이상의 아무 문자가 존재하는 문자를 찾고, 문자 전체를 new로 바꾼다.

Chapter 03. 데이터 정제하기

  • 학습목표
    • 데이터프레임에서 불필요한 행과 열을 삭제하거나 값을 바꾸는 방법 배우기
    • 정규 표현식을 사용해 잘못된 값을 고치거나 누락된 값이 있는 경우 웹 스크래핑하여 얻은 값으로 채우기

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

  • 데이터 정제 (data cleaning)
    • 데이터에서 손상되거나 부정확한 부분을 수정하거나, 불필요한 데이터를 삭제하거나, 불완전한 값을 교체하는 작업
    • 분석 목적에 맞게 변환하는 "데이터 랭글링(data wrangling)" 또는 "데이터 먼징(data munging)"의 일부로 수행될 수 있다.

열 삭제하기

loc 메서드와 불리언 배열

중간에 있는 '부가기호' 열을 제외하고 선택하고 할 때, 슬라이싱만으로는 해결하기 어렵다.
원소열 비교(element-wise comparison)를 활용하여 쉽게 해결 가능하다.

drop() 메서드

판다스에서 데이터프레임의 행 또는 열을 삭제

dropna() 메서드

판다스는 비어있는 값은 NaN으로 표시하는데, dropna() 메서드를 사용하면 기본적으로 NaN이 하나 이상 포함된 열 또는 행을 삭제한다.

행 삭제하기

[] 연산자 슬라이싱

[] 연산자에 슬라이싱을 사용해서 행을 선택할 수 있다.

[] 연산자와 불리언 배열

불리언 배열을 사용해서 행을 선택할 수 있다.
비교 연산자를 활용하여 원하는 행은 True로 표시하고, 제외할 행은 False로 표시한 불리언 배열을 만들어 사용한다.

중복된 행 찾기

duplicated() 메서드로 중복된 행을 검사할 수 있다.
중복된 행 중에서 첫 번째 행은 False, 나머지 행은 True로 불리언 배열을 리턴한다.

그룹별로 모으기

groupby() 메서드로 그룹핑을 할 수 있다. by 매개변수로 행을 합칠 때 기준이 되는 열을 지정한다.

원본 데이터 업데이트하기

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

판다스에서는 누락된 값을 기본적으로 NaN으로 표시한다.
이번 절에서는 NaN을 확인하고, 적절한 값으로 채우는 방법을 소개한다.

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

누락된 값 처리하기

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

isna() 메서드는 행의 값이 비어있으면 True를 리턴한다.
반대 역할을 하는 notna() 메서드도 존재한다.

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

정수형 값을 누락된 값으로 표시하기

판다스 데이터프레임에서 정수 타입 열에 None을 입력하면 누락된 값으로 인식하고, 해당 열은 실수 타입으로 바뀐다.

문자열 값을 누락된 값으로 표시하기

문자열 값에는 None을 입력하면 데이터프레임에 그대로 None으로 표시된다.
넘파이 패키지의 np.nan을 사용해야 누락된 값 NaN으로 표시된다.

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

  • loc 메서드 : 누락된 값을 원하는 값으로 바꿀 수 있다.
  • fillna() 메서드 : NaN을 전달한 값으로 대체한다.

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

  • replace() 메서드 : NaN 뿐만 아니라 어떤 값도 바꿀 수 있다.
    1. 바꾸려는 값이 하나일 때 -replace(원래 값, 새로운 값)
    2. 바꾸려는 값이 여러 개일 때
      1. replace([원래 값1, 원래값 2], [새로운 값1, 새로운 값 2])
      2. replace({'원래 값1': '새로운 값1', '원래 값2': '새로운 값2'})
    3. 열 마다 다른 값으로 바꿀 때
      1. replace({열 이름: 원래 값}, 새로운 값)

정규 표현식

  • 정규 표현식(regular expression)
    • 문자열 패턴을 찾아서 대체하기 위한 규칙의 모음

숫자 찾기 : \d

문자 찾기: 마침표(.)

잘못된 값 바꾸기

누락된 정보 채우기

반응형