[Pandas] 데이터 프레임 문자형 숫자형 타입 변경하기
📊 𝗕𝗶𝗴𝗗𝗮𝘁𝗮/Preprocessing

[Pandas] 데이터 프레임 문자형 숫자형 타입 변경하기

 

 문자형 → 숫자형 변경 

타입 확인

결측치를 보간하려는데 타입이 맞지 않습니다.

따라서 데이터 프레임 열 전부를 타입 변경하고자 합니다.

해당 열의 타입을 확인해보면 둘 다 str(문자열) 타입인 것을 확인할 수 있습니다.

문자열 타입을 Float 형식으로 변경해보겠습니다.

 

Seriese.astype(타입) 사용

df[['아황산가스농도', '일산화탄소농도']] = df[['아황산가스농도', '일산화탄소농도']].astype(float)

astype() 으로 문자열을 숫자형으로 변경할 수 있습니다.

확인해보면 float 형식으로 변경이 된 것을 확인할 수 있습니다.

단, 변경 시 값에는 0.03 같은 숫자값이 적혀있어야 합니다. 만약 "값없음" 같은 문자형 값이 있다면 따로 변경해줘야 합니다.

그러한 값을 변경하는 방법은 아래 포스팅을 참고하시길 바랍니다.

2022.05.18 - [📊 𝗕𝗶𝗴𝗗𝗮𝘁𝗮/Preprocessing] - [Pandas] replace() 이용하여 컬럼 값 한번에 변경하기

 

[Pandas] replace() 이용하여 컬럼 값 한번에 변경하기

 컬럼 값 변경하기 변경하고 싶은 컬럼 값 확인하기 df[df['아황산가스플래그'] == '통신장애'] 해당 데이터 프레임에서 ['아황산가스플래그'] 컬럼에 '통신장애' 라는 값이 들어있는 것을 확인할

yeomss.tistory.com

 

pd.to_numeric(Series) 사용

# 다른 방법
df['아황산가스농도'] = pd.to_numeric(df['아황산가스농도'], errors="coerce")
type(df['아황산가스농도'].iloc[0])

to_numeric() 을 사용할 수도 있습니다.

이 함수도 변경할 때 숫자값이 들어가있어야 변경이 가능합니다.

하지만 errors 옵션을 이용하면 에러가 나는 값을 강제로 변경이 가능합니다.

옵션의 내용은 다음과 같습니다.

 

 

 

 숫자형 → 문자형 변경 

Seriese.astype(타입) 사용

df[['아황산가스농도', '일산화탄소농도']] = df[['아황산가스농도', '일산화탄소농도']].astype(str)
type(df['아황산가스농도'].iloc[0]), type(df['일산화탄소농도'].iloc[0])

숫자형을 문자형으로 변경하는 것도 마찬가지로 df[].astype() 을 사용하면 됩니다.

type() 함수로 확인해보면 문자열 타입으로 변경이 된 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

df str to int str to float int to str pd 데이터프레임 타입 변경 컬럼 형변경 형 변경


 

728x90