개발/ETC

[python] 문자->숫자, 타입 변환 오류

wonpick 2021. 5. 10. 12:36
# object에서 숫자로 타입을 변환하고자 함. 
>> df3['d'] = df3['d'].apply(pd.to_numeric)

😡ValueError: Unable to parse string "34,659.1" at position 0

#옵션추가로 해결
>> df3['d] = df3['d'].apply(pd.to_numeric, errors = 'coerce') 

해결) 옵션 추가 errors = 'coerce'

-> 해당 오류가 뜨는 이유는 문자열 사이에 숫자로 된 문자열이 아닌 문자로된 문자열이 존재해서라고 한다.
오류를 무시하고 문자열을 강제로 숫자형태로 변환(NAN)하면 해결!!이긴 하지만...

나같은 경우에는 육안상 숫자 형태였고 해당 값이 필요하긴 한데 ㅠㅠㅠ 더 고민해봐야겠다.

---> 애초에 groupby를 시킬 때 문자 형태로 sum을 해버려서 ','와 '.'가 섞인채로 합쳐져 숫자로 타입변환을 할 수 없었던 것... 🤢 뭐든지 합치기 전에는 형태를 확인하고 하기 ㅠㅠ

# 이런식으로 천단위 구분자 ','를 제거해주고 타입 변환
df1['sales'] = df1['sales'].replace(',','', regex=True).astype(float)

참고 자료 -DataFrame의 문자열 칼럼을 숫자형으로 바꾸기 : pd.to_numeric(), DataFrame.astype()