Python/에러 error

[Python] [Error] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 379: invalid start byte

허니비 honeybee 2022. 12. 15. 16:28

 

로컬에 파일을 저장해서 불러와서 작업하려고 할 때 내 기준 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
반응형