일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Jupyter notebook
- CellPin
- 코크리
- Pull Request
- cs231n
- 사회조사분석사2급
- GIT
- HookNet
- airflow
- 도커
- 기초확률론
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- docker attach
- 백신후원
- ssh
- numpy
- logistic regression
- Decision Boundary
- 오블완
- docker
- IVI
- WSSS
- vscode
- aiffel exploration
- cocre
- 히비스서커스
- 프로그래머스
- docker exec
- AIFFEL
- 티스토리챌린지
Archives
- Today
- Total
히비스서커스의 블로그
[Pandas] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa7 in position 7: invalid start byte (feat.apply) 본문
Programming/Python
[Pandas] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa7 in position 7: invalid start byte (feat.apply)
HibisCircus 2022. 2. 23. 10:58728x90
상황
pandas를 이용하여 데이터프레임(DataFrame)을 csv파일로 저장한 후 불러오는 중 다음과 같은 에러가 발생하였다.
에러메시지
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa7 in position 7: invalid start byte
원인
데이터프레임 안에 한글이나 특수문자가 있기 때문
해결방법
데이터프레임 안에 csv파일로 저장할 시 encoding을 cp949로 해준거나 한글이나 특수문자를 영어로 바꿔준다.
csv파일로 저장할 시 encoding을 cp949로 해주기
import pandas as pd
# df는 이미 만들어놓은 데이터 프레임
df.to_csv('cm_column', encoding='cp494')
한글이 없는데도 이러한 문제가 나왔는데 데이터프레임의 컬럼의 값중 cm이 아닌 ㎝과 같은 특수 문자로 저장된 값이 존재했기 때문이다. 정확히 그 부분만 찍어서 바꿔주기 보다는 apply를 적용하여 전체 컬럼에 적용해주는 방법을 시도해보았다.
한글이나 특수문자를 영어로 바꾸기
import pandas as pd
# apply를 적용시킬 함수
def cm_change(x)
return x.replace('㎝','cm')
# df는 이미 만들어놓은 데이터 프레임이며 cm_coulmn은 cm이 포함된 컬럼을 의미
df['cm_column'] = df['cm_column'].apply(cm_change)
-히비스서커스-
728x90