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')
'Python > 기초' 카테고리의 다른 글
[Python 기초] 반복문 for in 구문 (0) | 2021.10.12 |
---|---|
[python] DataFrame의 특정 열, 행 추출하기 (0) | 2021.09.18 |
df.describe() : 데이터 요약을 위한 메서드 (0) | 2021.09.18 |