데이터 마이닝하는 경우, 실험을 할 때, 모든 데이터가 유효한 것은 아니다. 전처리를 하다보면 어떤 데이터(DB 레코드)는 기록이 잘못되었거나 포맷이 잘못되어, 또는 사용하지 않는 특징 (feature) 만 갖고 있어 필요 없는 경우가 있다(즉, null 이 너무 많을 때). 필요없는 얘들을 추려낼 때 파이썬(python)에서 데이터프레임(pandas를 사용) 형태로 읽어와 시각화로 알아 볼 수 있는 방법이 있고, 엑셀에서 직접 확인하는 방법도 있다.
아래 예제에서는 엑셀로 100여 개 정도의 파일 이름을 추려냈을 때, 이 파일명 만을 vi 를 사용하여 파이썬 변수로 변환하는 과정을 보이고자 한다.
아래 그림처럼 실험에 사용하고자 하는 파일 이름을 추렸다.
이 파일 이름을 파이썬 리스트(list)로 만드려면
file_list = ["brux2.edf", "ins2.edf", ... ]
와 같이 바꾸어야 한다. 그러면, 이걸 하나 하나 손으로 바꾸어야 할까? vi 를 쓰면 간편하다.
vi 에 앞서 파일 목록을 복사해온다.
아래 명령어를 써서 모든 줄의 가장 앞에 쌍따옴표(")를 추가한다.
:%s/^/"
(명령어는 맨 앞 글자(^)를 쌍따옴표(")로 치환(%s) 한다는 의미)
맨 뒤에는 쌍따옴표(")와 쉼표(,)를 추가한다.
:%s/$/",
(명령어는 맨 뒷 글자($)를 쌍따옴표와 쉼표(",)로 치환(%s) 한다는 의미)
줄바꿈을 없애기 위해 :%s/\n// 를 사용한다.
(명령어는 줄바꿈(\n)를 nothing(//)으로 치환(%s) 한다는 의미)
맨 뒤에 쓸 데 없는 문자를 지우고, 가장 앞 뒤에 대괄호로 감싸서 복사&붙여넣기로 파이썬 변수에 쓴다.
file_list = ["brux2.edf","ins2.edf","ins3.edf","ins4.edf","ins5.edf","ins6.edf","ins7.e df","ins8.edf","n1.edf","n10.edf","n11.edf","n2.edf","n3.edf","n5.edf","nar co1.edf","narco2.edf","narco3.edf","narco4.edf","narco5.edf","nfle1.edf","n fle10.edf","nfle11.edf","nfle12.edf","nfle13.edf","nfle14.edf","nfle15.edf" ,"nfle16.edf","nfle17.edf","nfle18.edf","nfle19.edf","nfle2.edf","nfle20.ed f","nfle21.edf","nfle22.edf","nfle23.edf","nfle24.edf","nfle26.edf","nfle27 .edf","nfle28.edf","nfle29.edf","nfle3.edf","nfle30.edf","nfle31.edf","nfle 32.edf","nfle34.edf","nfle35.edf","nfle36.edf","nfle37.edf","nfle38.edf","n fle39.edf","nfle4.edf","nfle40.edf","nfle5.edf","nfle6.edf","nfle7.edf","pl m10.edf","plm2.edf","plm3.edf","plm4.edf","plm5.edf","plm6.edf","plm7.edf", "plm8.edf","plm9.edf","rbd1.edf","rbd10.edf","rbd11.edf","rbd12.edf","rbd13 .edf","rbd14.edf","rbd15.edf","rbd17.edf","rbd18.edf","rbd19.edf","rbd2.edf ","rbd20.edf","rbd21.edf","rbd22.edf","rbd3.edf","rbd4.edf","rbd5.edf","rbd 6.edf","rbd7.edf","rbd8.edf","rbd9.edf","sdb2.edf","sdb3.edf"]
다음으로는 정규식을 사용하여 탭(tab) 단위나 쉼표(comma) 단위로 구분 된 문서를 수정하는 예제를 살펴보기로 한다.
출처:
1. [완료]vi 에디터로 편집할때 모든 줄에 단어 입력하는 방법 알려주세요
2. UNIX VI editor에서 줄바꿈(line break) 한번에 없애기
'노트정리 > 리눅스 linux' 카테고리의 다른 글
맥(mac os)에서 한글파일 unzip 안될 때 (0) | 2020.02.24 |
---|---|
맥(mac os)에서 여러 그림 파일(jpg 등)을 pdf 파일 하나로 합치는 방법 (0) | 2019.10.24 |
InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version 에러 해결법 (0) | 2019.09.30 |
리눅스에서 sed 명령어로 파일의 특정 행 삭제 하기 (0) | 2019.01.20 |
에러 해결 ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory (0) | 2018.07.09 |
우분투 14를 새로 설치하고 마우스 커서가 안보이는 문제 해결법. (0) | 2016.04.25 |
우분투(ubuntu)에서 자바(java) 1.8 버전 편하게 설치하기 (0) | 2016.04.21 |
우분투에서 path 설정하는 방법(아마 리눅스 일반적인 방법) (0) | 2015.09.11 |