morijwana
수로그
morijwana
전체 방문자
오늘
어제
  • 분류 전체보기
    • 강의노트
    • Machine Learning
      • Pandas
      • NLP
    • Computer Science
      • Linux
      • TIL
    • Development
      • React
      • Swift
      • Javascript
    • 스터디 기록
      • Clean Code
      • 구글 BERT의 정석
      • 개발도서
      • 기타
    • Problem Solving
      • Baekjoon
      • ICPC Sinchon
    • 끄적
      • 끄적끄적
      • 요리왕

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 프로그래밍언어론
  • ML
  • gdsc
  • word2vec
  • Bert
  • 백준
  • nlp
  • 자연어처리
  • Python
  • 데이터사이언스
  • 회고
  • 구부정스터디
  • 구글BERT의정석
  • cs224n
  • 프레임워크없는프론트엔드개발
  • Pandas
  • 개발도서
  • GDSC Sookmyung
  • 민트하임스터디
  • Solution Challenge

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
morijwana
Machine Learning/Pandas

[kaggle courses] Pandas - Data Types and Missing Values

[kaggle courses] Pandas - Data Types and Missing Values
Machine Learning/Pandas

[kaggle courses] Pandas - Data Types and Missing Values

2021. 10. 18. 16:49

https://www.kaggle.com/residentmario/data-types-and-missing-values

 

Dtypes - dtype, dtypes, astype

DataFrame이나 Series의 각 column의 데이터 타입을 가리켜 dtype이라고 부른다. 특정 column의 타입을 가져오기 위해 dtype 속성을 사용할 수 있다. 예를 들어, reviews DataFrame의 price 열의 데이터 타입을 알고 싶다면, 아래와 같이 작성하면 된다.

reviews.price.dtype  # output: dtype('float64')

DataFrame 전체 columns의 데이터 타입 또한 알 수 있다. reviews의 dtypes 속성을 찍어보면, DataFrame의 각 column의 dtype을 출력한다. DataFrame의 column별 데이터 타입 정보를 담고 있는 속성은 dtype이 아닌 dtypes임을 주의하자.

reviews.dtypes
country        object
description    object
                ...  
variety        object
winery         object
Length: 13, dtype: object

여기서 명심해야 할 것은 문자열로 구성된 열은 문자열에 대응하는 고유한 타입명을 갖지 않고 object 타입으로 표시된다는 것이다.

 

astype() 함수를 통해 한 column의 데이터 타입을 다른 타입으로 변환하는 것도 가능하다(형변환이 가능한 경우에만). 아래의 예제는 points column의 데이터 타입을 int64에서 float64로 형변환하는 코드다.

reviews.points.astype('float64')
0         87.0
1         87.0
          ... 
129969    90.0
129970    90.0
Name: points, Length: 129971, dtype: float64

DataFrame과 Series의 인덱스 또한 dtype을 갖는다.

reviews.index.dtype  # output: dtype('int64')

 

 

결측치 다루기 - isnull, notnull, fillna, replace

Pandas에서 결측치는 NaN(Not a Number) 값으로 주어진다. 기술적인 이유로 NaN 값들은 항상 float64 타입을 갖는다. Pandas는 결측치를 다루기 위한 몇가지 메서드를 제공하는데, 대표적인 메서드로 NaN 엔트리를 갖는지 확인하는 pd.isnull()과 그와 반대로 동작하는 pd.notnull()이 있다. 아래 예제는 country column의 값이 비어있는 레코드만 선택하는 코드다.

reviews[pd.isnull(reviews.country)]

 

fillna()로 결측치를 다른 값으로 채워넣을 수도 있다.

reviews.region_2.fillna("Unknown")
0         Unknown
1         Unknown
           ...   
129969    Unknown
129970    Unknown
Name: region_2, Length: 129971, dtype: object

 

NaN 값이 아닌, 이미 채워져 있는 값들도 다른 값들로 대체할 수 있다. 만약 우리의 데이터셋에 있는 리뷰어 Kerin O'Keefe가 트위터 아이디를 @kerinokeffe에서 @kerino로 바꿨다고 생각해 보자. 이런 변경사항을 우리 데이터셋에 반영하는 방법은 replace() 메서드를 사용하는 것이다.

reviews.taster_twitter_handle.replace("@karinokeefe", "@kerino")
0            @kerino
1         @vossroger
             ...    
129969    @vossroger
129970    @vossroger
Name: taster_twitter_handle, Length: 129971, dtype: object

replace() 메서드가 특히 더 가치있는 이유는 NaN이 아닌 다른 형식으로 결측치를 표현한 경우(e.g. Unknown, Undisclosed, Invalid)에도 결측치를 다룰 수 있게 해주기 때문이다.

저작자표시 (새창열림)

'Machine Learning > Pandas' 카테고리의 다른 글

[kaggle courses] Pandas - Renaming and Combining  (0) 2021.10.19
[kaggle courses] Pandas - Grouping and Sorting  (0) 2021.10.16
[kaggle courses] Pandas - Summary Functions and Maps  (0) 2021.10.15
[kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)  (0) 2021.10.15
[kaggle courses] Pandas - Creating, Reading and Writing  (0) 2021.10.14
  •  
  • Dtypes - dtype, dtypes, astype
  •  
  •  
  • 결측치 다루기 - isnull, notnull, fillna, replace
'Machine Learning/Pandas' 카테고리의 다른 글
  • [kaggle courses] Pandas - Renaming and Combining
  • [kaggle courses] Pandas - Grouping and Sorting
  • [kaggle courses] Pandas - Summary Functions and Maps
  • [kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)
morijwana
morijwana
행복한 휴학생의 devlog

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.