(Python) Pandas Data Convert

Page content

강의 홍보

1줄 요약

  • Pandas에서 데이터 형변환은 astype로 끝낸다.

참고자료

예제

  • 가상의 temp 데이터를 만든다.
  • 모두 0, 1, 2 데이터이지만 각 데이터 타입은 모두 다르다.
import pandas as pd

temp = pd.DataFrame({"A": [0,1,2], 
                     "B": ["0", "1", "2"], 
                     "C": [0.0, 1.0, 2.0]})

temp.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   A       3 non-null      int64  
 1   B       3 non-null      object 
 2   C       3 non-null      float64
dtypes: float64(1), int64(1), object(1)
memory usage: 200.0+ bytes
print(temp)
   A  B  C
0  0  0  0
1  1  1  1
2  2  2  2

확인

  • 변환을 진행할 때는, 아래와 같이 확인하는 용도로 우선 확인한다. 이 때 확인해야 하는 것은 dtype: ~ 이다.
  • 보시다시피 정상적으로 잘 변환되는 것을 알 수 있다.
temp["A"].astype(str)
0    0
1    1
2    2
Name: A, dtype: object
temp["B"].astype(int)
0    0
1    1
2    2
Name: B, dtype: int64
temp["C"].astype(int)
0    0
1    1
2    2
Name: C, dtype: int64

적용

  • 이제 본 데이터에 적용을 해본다.
temp["A"] = temp["A"].astype(str)
temp["B"] = temp["B"].astype(int)
temp["C"] = temp["C"].astype(int)

temp.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype 
---  ------  --------------  ----- 
 0   A       3 non-null      object
 1   B       3 non-null      int64 
 2   C       3 non-null      int64 
dtypes: int64(2), object(1)
memory usage: 200.0+ bytes
  • 처음과 달라진 Dtype를 확인할 수 있을 것이다.
  • 간단한 문법이지만, 막상 실무에서 적용하려면 생각이 잘 나지 않을수도 있다. 작은 도움이 되기를 바란다.

Happy To Code