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로 변환됩니다.