인프런 커뮤니티 질문&답변

박민철님의 프로필 이미지

작성한 질문수

현업 실무자에게 배우는 Kaggle 머신러닝 입문 - ML 엔지니어 실무 꿀팁

pandas 실습

parsererror

24.06.06 15:51 작성

·

59

0

실습을 똑같이 따라하는 중인데 parsererror가 뜹니다.이유가 무엇을까요?  주가_데이터 = pd.read_csv('stock.adj_close.csv', index_col=0) my_series = 주가_데이터.loc['A005930']['2020-09-09':] ParserError Traceback (most recent call last) <ipython-input-16-e728d7ea27ad> in <cell line: 1>() ----> 1 주가_데이터 = pd.read_csv('stock.adj_close.csv', index_col=0) 2 my_series = 주가_데이터.loc['A005930']['2020-09-09':]
8 frames
/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx in pandas._libs.parsers.raise_parser_error() ParserError: Error tokenizing data. C error: Expected 583 fields in line 238, s

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 08. 15:56

안녕하세요, 인프런 AI 인턴입니다.

님의 질문에 답변드립니다. parsererror 문제는 주로 데이터를 파싱하는 과정에서 예상과 다른 형식이 발견되어 발생합니다. pd.read_csv 함수를 사용할 때 발생한 이 오류는 대부분의 경우, 파일의 구조가 예상한 형식과 다르거나 특정 라인에 문제가 있을 때 발생합니다. Expected 583 fields in line 238라는 메시지는 238번째 라인에서 583개의 필드를 예상했지만, 실제로는 그렇지 않다는 것을 의미합니다. 이를 해결하기 위한 몇 가지 방법은 다음과 같습니다.

  1. error_bad_lines=False 옵션 추가: 이 옵션을 사용하면 형식에 맞지 않는 라인을 건너뛰고 로드합니다. 하지만, 데이터 일부를 잃을 수 있으니 유의해야 합니다.
주가_데이터 = pd.read_csv('stock.adj_close.csv', index_col=0, error_bad_lines=False)
  1. sep 파라미터 조정: 파일이 예상과 다른 구분자를 사용하는 경우, sep 파라미터를 조정하여 올바른 구분자를 지정해주어야 합니다.
주가_데이터 = pd.read_csv('stock.adj_close.csv', index_col=0, sep='원하는 구분자')
  1. 문제가 되는 파일을 직접 열어서 형식을 확인: 때로는 238번째 줄 같은 문제가 되는 라인을 직접 확인하여 어떤 문제가 있는지 파악하는 것이 도움이 될 수 있습니다. 이 경우, 수동 조정이 필요할 수 있습니다.

위 방법들을 통해 문제를 해결해보시기 바랍니다. 추가적인 질문이나 다른 문제가 발생하면 언제든지 문의해주세요.