로컬에 파일을 저장해서 불러와서 작업하려고 할 때 내 기준 50프로 확률로 뜨는 에러.. ^^
"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 379: invalid start byte"
이 아이다
정확한 원인을 알기 어려워서 빡치는 에러 중 하나다.
인터넷에 주로 나와있는 해결방법은 encoding = 'cp949' 등의 파라미터를 거는 방법인데, 가끔 그런 방법으로도 해결이 안 될 때가 있다.
인코딩을 이래저래 바꿔가며 시도해 보면
또 다른 에러가 날 기다린다
"ParserError: Error tokenizing data. C error: Expected 51 fields in line 58, saw 52"
이 에러의 뜻은 행 열 개수가 안 맞는다는 거다. 나의 경우에는 원본 데이터에 뭔가 필드보다 많은 열이 들어간 경우였다. 이 경우 해결 방법이 (내가 인터넷에서 찾은) 은 두 가지가 있었는데
1. 원본 데이터의 txt 파일을 열고 수정하기
-> 나의 경우 데이터가 너무너무 커서 불가능했다. 회사에서 받은 거대한 log 데이터였음
2. 위 코드를 이용하기
-> 해결!
이 방법은 csv reader 를 이용해서 일단 데이터를 강제로 열고, 데이터프레임화 시키는 방법이다.
f = open(file_path,'r', encoding ='cp949')
reader = csv.reader(f)
csv_list =[]
for i in reader:
csv_list.append(i)
f.close()
log_df2 = pd.DataFrame(csv_list)
log_df2.tail()
저 에러 뜨면 너무 힘들어서 내가 나중에 보려고 기록...
728x90
'Python > 에러 error' 카테고리의 다른 글
[error] ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). (0) | 2023.02.20 |
---|