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 |