" 안녕하세요 virtuonweb 입니다 "
이번 글에서는 EOF inside string python 에러에 대해 알아볼까 한다.
amazon aws ec2 무료 서버에서 자동으로 데이터를 수집하고 있는 내 코드를 통해 fail, success csv 파일을 열어 분석하려고 했는데
한 파일에서 아래와 같은 에러가 발생했다.
[실행코드]
survive2_df5 = pd.read_csv('online/Pyupbit/autotrade/datasets/dataset_220205/coin_track_succeed_2per.csv')
[에러]
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.read()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_low_memory()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_rows()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows()
pandas\_libs\parsers.pyx in pandas._libs.parsers.raise_parser_error()
ParserError: Error tokenizing data. C error: EOF inside string starting at row 2218
[해결책 1] - engine='python' ?
위 링크에 들어갔더니 engine='python'으로 설정해보라 한다.
왜냐면 강제로 파일을 열어 일일이 수정하면 또 다른 에러가 뜰 떄마다 다시 수정해줘야 하기 때문이다.
이 말이 일리가 있었다
Pandas CSV error: Error tokenizing data. C error: EOF inside string starting at line | Shane Lynn
Tokenizing Error Recently, I burned about 3 hours trying to load a large CSV file into Python Pandas using the read_csv function, only to consistently run into the following error: ParserError Traceback (most recent call last) in () ... pandas\_libs\parser
www.shanelynn.ie
[해결책 2] - 파일 직접 열기 feat. 메모장
해결책 1은 내 파일과 코드에는 먹히지 않았다.
따라서 2218번째 줄을 직접 보기로 했다
==> 용량이 큰 csv 파일은 메모장으로 열면 편하다. 문제는 이렇게 메모장에서 보이는 Line이 실제 csv의 row와 다르다는 점이다.
[해결책3] - nrows
그래서 python에서 애초에 2217번째 row만큼만 csv에서 여는 방법을 사용하기로 했다.
이후 2217번째 row의 마지막 숫자를 메모장에서 검색하면 될 것이다.
survive2_df5 = pd.read_csv('online/Pyupbit/autotrade/datasets/dataset_220205/coin_track_succeed_2per.csv', nrows = 2217)
원하는 row만큼만 read하고 싶으면 nrows parameter를 추가하면 된다.
-> 원하는 정보를 얻었다.
이후 숫자를 메모장에서 검색해 확인해보니
가장 마지막 데이터가 2218번째 row 였다.
간편한 해결책으로 그냥 2218번째 row를 삭제헸고, 문제는 해결되었다.
함께 읽으면 좋은 글