전공/python

데이터 전처리 중 오류들

import ysy 2022. 4. 23. 17:52

오늘은 새로운 서버에서 새로운 데이터로 코드를 돌리기로 했다.

어제부터 시작하여 데이터는 모두 준비 되었고 디렉토리를 알맞게 변경하고 코드를 돌렸다.

그런데 몇가지 문제 때문에 시간이 좀 걸렸다.

 

1. sudo 권한

데이터가 다른 디스크에 들어가 있어서 sudo 권한을 줬다.

 

2. 한글 인코딩

  File "all_csv.py", line 29
SyntaxError: Non-ASCII character 'xeb' in file all_csv.py on line 29, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

이런 오류가 떠서 검색해보니 한국어 오류라고 한다.

# -*- coding: utf-8 -*-
을 문서 제일 앞에 추가하여 해결했다.

위 문장은 UTF8을 사용할 때고 euc-kr 사용시

# -*- coding: euc-kr -*-

라고 적어주면 된다.

 

3. python version error

Traceback (most recent call last): 
File "all_csv.py", line 15, in <module>
    dir_f = open('data_list_val.csv','w',newline='')
TypeError: 'newline' is an invalid keyword argument for this function

이런 오류가 뜨면 python3로 호출하면 된다고 한다. 

 

4. 데이터 확장자

지난번 데이터와 달리 이번에는 .WAV파일이 아니라 .wav파일이었다.

 

5. 데이터 오류

Traceback (most recent call last):
  File "all_csv.py", line 28, in <module>
    with open(json_file_path,'r') as json_f:
FileNotFoundError: [Errno 2] No such file or directory: '/disk3/general_data/Validation/일반남여_일반통합05_M_1524045237_33_수도권_실내/일반남여_일반통합05_M_1524045237_33_수도권_실내_07431.wjson'

 

.wjson이란 확장자는 없는 것이 당연하다. 

코드 중에 

json_file = file[:-3] + 'json'
 
라는 코드가 있는데 .wav가 아니라 뒤에 한 글자 더 붙어서 확장자가 덜 지워진 것 같았다.
그래서 데이터를 뜯어보기로 했다.
 
이상한 데이터.

네번째 줄을 보면 확장자가 .wav가 아니라 .wavp다.

그냥 해당 .wavp와 .json모두 삭제해주고 끝냈다.

그런데 저 파일을 찾는 과정에서 ls명령어를 쳤는데 데이터가 워낙 많아서 자꾸만 잘렸다.

화면 전체가 터미널 창이 되도록 창을 키운 다음 ls를 하니까 모두 볼 수 있었지만 화면이 작았더라면 못봤을 것이다.

 

이런 파일 몇 개를 더 수정해주고 나서야 다음 단계로 넘어갈 수 있었다.

이후 정규식을 이용한 코드로 annotation을 제거해주고 빈 데이터도 지워준 후 데이터 전처리를 완수했다.

(22.04.23)

.

.

.

.

.

 

그러고 나서 며칠 뒤, 다시 데이터를 열어보니 언제부터 이랬는지 데이터가 이상했다.

(22.04.27)

0번째 열 왜저래,,

멋대로 0번째 열이 추가 되었다.

선택의 기로에 섰다. 

1. original csv파일이 있어서 다시 전처리를 할지,(전처리 코드의 오류를 발견하고 고칠 수 있을 것 같음)

2. 그냥 pandas뜯어서 0번째 열을 삭제할지.(pandas data를 다루는 데 익숙해질 것 같음)

 

고민하다가 그냥 열삭제에 도전했다.

 

여기서 부터는 새로운 게시물 작성

 

랜덤 행 추출:

https://zephyrus1111.tistory.com/49

반응형