본문 바로가기
판다스/판다스 팁

[pandas] 일부만 %로 표기된 열을 float으로 바꿀 때

by 김판다t 2023. 7. 5.

아래 시리즈 s는 일부만 %로 표기되어 있고 %로 표기된 부분은 문자열이 된다

 

import pandas as pd
s = pd.Series(['1', 2, '300%'])

 

s

0       1
1       2
2    300%
dtype: object

 

 

 

이 s의 dtype을 float로 바꾸려면 %로 된 문자열 부분 때문에 그냥은 쉽지 않다

 

이럴 때는 아래와 같은 코드를 사용하면 된다

 

cond1 = s.astype('str').str.contains('%')
s.mask(cond1, s.astype('str').str.replace('%', '').astype('float').div(100)).astype('float')

output

0    1.0
1    2.0
2    3.0
dtype: float64

 

%외에도 문자열로 섞여있는 다른 값이 있기 때문에 (ex. '1') 마지막에 astype('float')을 한번 더 해준 것이다

 

 

 

유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas