본문 바로가기
self.python

[python] 데이터프레임 데이터 타입 바꾸기

by 톤토니 2022. 6. 20.
반응형

 

데이터타입 변경

데이터프레임 데이터 타입 바꾸기

데이터 프레임 내 데이터들은 astype 이라는 함수로 데이터 타입을 변경할 수 있다.

0. 데이터 프레임 준비

 

예시를 들기 위해 임의의 데이터 프레임을 하나 만들어보았다.

import numpy as np
import pandas as pd

score = {'Date' : [2016.03, 2017.03, 2018.03, 2019.03, 2020.03, 2021.03, 2022.03],
            'Mary': [90, 68, 70, 80, 92, 68, 78],
            'Kate': [90, 68, 70, 80, 92, 68, 78],
            'Mark': [39, 59, 60, 73, 84, 87, 92],
            'Maxi': [83, 92, 71, 56, 79, 93, 85]}

df = pd.DataFrame(score)
df

 

 

Date는 날짜로 각 연도별 3월을 나타내는 것이고 4명의 학생에 대한 점수가 나열되어 있다.

여기서 데이터프레임을 만드는 것을 보면 알겠지만 Date의 타입이 float 로 되어있음을 짐작할 수 있다.

 

 

1. 데이터 타입 확인하기

데이터 타입을 확인하는 방법은 데이터프레임.dtypes 이다.

 

df.dtypes

 

이런 경우 내가 데이터 프레임 전체에 같은 값을 더하거나 그런 일이 있는 경우

날짜 값도 같이 변경이 되어버릴 수 있다.

df = df+5
df

 

이런 일을 방지하기 위해 Date의 값을 string 으로 변경할 필요가 있다.

 

 

2. 열 데이터 타입 변경하기

 

df['Date'] = df['Date'].astype(str)
df.dtypes

 

 

이렇게 변경 한 경우 df + 5 하면 error가 발생한다.

이 때 모든 점수 값에 +5 를 하는 방법은 여러가지가 있겠지만 data type을 알고 있으니 iloc을 활용할 수 있다.

 

df.iloc[:, 1:] = df.iloc[:, 1:] + 5
df

 

 

2. 데이터 타입 전체 변경하기

 

반대로 학생들의 점수를 수정하지 못하게 하도록 점수의 데이터 타입을 변경할 수 도 있다.

이 경우 데이터 프레임의 모든 값의 데이터타입을 변경하는 것이기 때문에 아래와 같이 쓸 수 있다.

 

df = df.astype(str)
df.dtypes

 

일괄적으로 바뀐 것을 확인할 수 있다.

 

 


 

3. 총 정리

import numpy as np
import pandas as pd

score = {'Date' : [2016.03, 2017.03, 2018.03, 2019.03, 2020.03, 2021.03, 2022.03],
            'Mary': [90, 68, 70, 80, 92, 68, 78],
            'Kate': [90, 68, 70, 80, 92, 68, 78],
            'Mark': [39, 59, 60, 73, 84, 87, 92],
            'Maxi': [83, 92, 71, 56, 79, 93, 85]}

df = pd.DataFrame(score)

print(df.dtypes)	 # 데이터타입 확인

df['Date'] = df['Date'].astype(str) 	# Date 열 데이터 타입 변경

print(df.dtypes) # 데이터타입 확인

df.iloc[:, 1:] = df.iloc[:, 1:] + 5		# 점수 +5점

df = df.astype(str) 	# 전체 데이터 타입 변경
df.dtypes
반응형

댓글