Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – astype() 메서드로 DataFrame 데이터 타입 변환하기

Pandas에서는 astype() 메서드를 사용하여 DataFrame의 열 데이터 타입을 다른 타입으로 간편하게 변환할 수 있습니다. 이 메서드는 지정된 dtype이 적용된 새로운 객체를 반환하며, 원본 DataFrame은 그대로 유지됩니다.

1. 라이브러리 임포트

먼저 필요한 라이브러리를 가져옵니다.

import pandas as pd

2. DataFrame 생성

예제에 사용할 DataFrame을 생성합니다. 여기에는 두 개의 열이 있으며, "Reg_Price"는 float64 타입, "Units"는 int64 타입입니다.

dataFrame = pd.DataFrame(
   {
      "Reg_Price": [7000.5057, 1500, 5000, 8000, 9000.75768, 6000],
      "Units": [90, 120, 100, 150, 200, 130]
   }
)

3. 현재 데이터 타입 확인

dtypes 속성을 사용하면 각 열의 데이터 타입을 쉽게 확인할 수 있습니다.

dataFrame.dtypes

4. astype()으로 데이터 타입 변환

이제 모든 열을 int32 타입으로 변환해 보겠습니다.

dataFrame.astype('int32').dtypes

전체 예제 코드

지금까지의 내용을 하나로 정리한 전체 코드입니다.

import pandas as pd

# DataFrame 생성
dataFrame = pd.DataFrame(
   {
      "Reg_Price": [7000.5057, 1500, 5000, 8000, 9000.75768, 6000],
      "Units": [90, 120, 100, 150, 200, 130]
   }
)

print("DataFrame ...\n", dataFrame)
print("\nDataFrame 데이터 타입 ...\n", dataFrame.dtypes)
print("\n모든 열을 int32로 변환...")

print("\n변환 후 DataFrame 데이터 타입 ...\n", dataFrame.astype('int32').dtypes)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame ...
    Reg_Price   Units
0 7000.50570      90
1 1500.00000     120
2 5000.00000     100
3 8000.00000     150
4 9000.75768     200
5 6000.00000     130

DataFrame 데이터 타입 ...
Reg_Price    float64
Units          int64
dtype: object

모든 열을 int32로 변환...

변환 후 DataFrame 데이터 타입 ...
Reg_Price    int32
Units        int32
dtype: object

참고 사항

astype()으로 float 타입을 int 타입으로 변환하면 소수점 이하는 반올림되지 않고 잘립니다(절사). 예를 들어 7000.5057은 7000이 됩니다. 또한 일부 열만 변환하고 싶다면 딕셔너리 형태로 대상 열과 dtype을 지정할 수도 있습니다. 예를 들어 dataFrame.astype({'Units': 'int32'})처럼 작성하면 "Units" 열만 int32로 변환됩니다.