반응형

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, col3col4는 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로
각각에 맞게 변경된 것을 확인할 수 있습니다.

반응형

+ 최근 글