문제
Pandas DataFrame을 활용하던 중 컬럼 자료형을 소수점 사용을 위해 'float'으로 변환하려고 하니 아래와 같이 오류가 발생했다.
ValueError: could not convert string to float: '1,010.00'
숫자 표기에 맞게 잘 적혀있고 겉 보기엔 맞는데... 무엇이 문제일까?
바로 '1,010.00', 쉼표(Comma)가 있어서 오류가 발생한 것이다.
해결 및 방법
'replace'를 사용하여 쉼표를 한번에 없애줄 수 있다.
첫번째 인자에 ','를 넣고 두번째 인자는 '' 빈칸으로 두는 것이다.
df = df.replace(',','', regex=True)
나의 사례는 쉼표를 없애는데 이 기능을 사용했지만 다른 글자로 바꾸는데도(치환) 사용할 수 있다.
사과 가격이 올라서 바꿔야 할때 아래와 같이 입력하면 '5000' → '8000'으로 바뀌게 된다.
사과와 딸기는 빨간색이지만 안익은 상태나 청사과는 초록색이다. 한번 바꿔보도록 하자.
'빨간'을 '초록'으로 치환하려고 입력했으나 변경되지 않았다. replace는 문자열이 완전히 일치하는 것만 변경할 수 있다.
그러나 'regex' 옵션을 추가하면 일부만 일치하더라도 변경할 수 있다. 정규표현식을 사용할때도 사용된다.
판다스(Pandas DataFrame) 특정 글자 포함 행 추출 및 삭제하기 (0) | 2022.10.14 |
---|---|
판다스(Pandas DataFrame) 컬럼(columns) 변경하기(rename) (0) | 2022.10.14 |
django.db.utils.OperationalError: (1050, "Table already exists") migrate 오류 해결법 (0) | 2022.09.27 |
Auto-created primary key used when not defining a primary key type 에러 해결법 (0) | 2022.09.22 |
셀레니움(selenium) webdriver 없이 작동하게 만드는 방법(크롬 드라이버) (0) | 2022.09.10 |