11-02 열의 dtype통일 (convert_dtypes)
DataFrame.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True)
개요
convert_dtypes 메서드는 열의 요소가 혼합된 dtype일 경우, 열의 요소를 같은 dtype으로 통일할 수 있는 가장 합리적인 형식을 갖는 pd.NA로 변환합니다.
사용법
기본 사용법
df.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True)
infer_object : dtype이 object인 경우 적절한 type으로 변경 할지의 여부입니다. 기본적으로 True이며,
이 경우 열의 요소를 확인해서 가장 적절한 dtype을 가진 pd.NA를 반환합니다.
convert_string, convert_integer, convert_boolean, convert_floating : 해당 유형으로의 pd.NA를 설정할지의 여부입니다.
기본적으로 True이기 때문에, 가능한 모든 dtype에 대해서 적절한 값을 반환합니다.
예시
먼저, 아래와 같이 NaN이 포함된 3x4 행렬을 만듭니다.
col1은 string, col2는 bool, col3, col4는 dtype을 가지지만, NaN 을 포함하기 때문에
col1과 col2는 object 형식을 갖는것을 볼 수 있습니다.
col1 = ['a','b',np.NaN]
col2 = [True, np.NaN, False]
col3 = [np.NaN, 2, 4]
col4 = [1.4, np.NaN, 2.5]
df = pd.DataFrame(data={'col1':col1,'col2':col2,'col3':col3,'col4':col4},index=['row1','row1','row3'])
print(df)
>>
col1 col2 col3 col4
row1 a True NaN 1.4
row1 b NaN 2.0 NaN
row3 NaN False 4.0 2.5
print(df.dtypes)
>>
print(df.dtypes)
>>
col1 object
col2 object
col3 float64
col4 float64
dtype: object
이제 df.convert_dtype를 실행해서 가장 적절한 dtype으로 만들 수 있는
np.NA를 추가해보겠습니다.
result = df.convert_dtypes()
print(result)
>>
col1 col2 col3 col4
row1 a True <NA> 1.4
row1 b <NA> 2 <NA>
row3 <NA> False 4 2.5
위와 같이 기존 NaN들이 NA 형태로 변경된 것을 확인 할 수 있습니다.
그럼 이어서 dtype또한 변경되었는지 확인해보겠습니다.
print(result.dtypes)
>>
col1 string
col2 boolean
col3 Int64
col4 Float64
dtype: object
각 열의 dtype또한 기돈 object type에서 string, boolean, int64, float64로
각각에 맞게 변경된 것을 확인할 수 있습니다.
'파이썬완전정복-Pandas DataFrame > 11. 데이터 타입' 카테고리의 다른 글
Pandas DataFrame 11-03. object 열의 적절 dtype추론(infer_objects) (0) | 2022.01.25 |
---|---|
Pandas DataFrame 11-01. dtype변경 (astype) (0) | 2022.01.25 |