본문 바로가기

Python/기초

[Python 오류해결법] Error tokenizing data

Error tokenizing data. c error : expected ~~

 

1. 오류의 원인 

- 라인별 구분자로 분리된 단어의 개수가 다름.

 

Pandas가 텍스트파일을 읽어서 데이터 프레임을 만들어줄때 각 라인을 구분자로 분리하였을때,

단어(빈 문자열 포함)의 개수가 같지 못한 상황에 발생하는 오류

 

 

2. 오류 확인해보기

with open(url) as df:
lines = df.readlines()

for line in lines[:2]:
print(len(line.split('\t')))

>>> 1

       1

       12

(오류 내용이 알려주듯, 3번째 라인에서 단어의 개수가 12개 나옴)

 

 

3. 해결방법

구분자를 추가하여 각 라인별 구분자로 분리된 단어수를 맞춰주거나, 단어수가 맞지 않는 행을 지워주면 됨.

- 행 지우고 출력하는 방법(skiprows)-

 

# 행 지우고 출력하는 방법

# df= pd.read_csv(url주소 , delimiter = '구분자', skiprows = 지우고자하는 행)
df= pd.read_csv(url, delimiter = '\t', skiprows=1) # 다수의 행삭제시, [0,1,2]형태로 입력
print(df)

# 만일 데이터가 깨져서 정확한 파일형식으로 확인하고 싶을 경우,
# 원하는 장소에 저장하여 출력형태를 확인하려는 경우
# df1.to_csv(r'C:\Users\Zeroeun\바탕 화면\원하는 파일명.csv')