반응형
데이터프레임 데이터 타입 바꾸기
데이터 프레임 내 데이터들은 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
반응형
'self.python' 카테고리의 다른 글
[python] 숫자 데이터 자리수 맞추어 표시하기(앞에 0 채워주기) - zfill() (0) | 2022.06.27 |
---|---|
[python] 데이터 프레임 합치기 - concat, append, join (0) | 2022.06.21 |
[python] matplot 그래프 그리기 유용한 꿀팁! - (2) (0) | 2022.06.13 |
[python] matplot 그래프 그리기 유용한 꿀팁! - (1) (0) | 2022.06.12 |
[python] matplotlib 그래프 여러 개 그리는 방법 (0) | 2022.06.06 |
댓글