특정 문자열이 포함된 값을 제외하는 방법을 찾기 위해 문자열을 찾는 방법에 대해 알아보게 되었다. in과 find로 특정 문자열을 포함하고 있는지에 대해 알 수 있었지만, 약간의 차이점을 가지고 있었다.
in
[찾을 문자열] in [문자열 변수]형태로 사용if "abc" in "abcdefg" ...찾고자 하는 문자열이 존재할 경우
True, 존재하지 않을 경우False반환
find()str.find("abc")찾고자 하는 문자열이 존재할 경우 해당 위치 반환, 존재하지 않을 경우
-1반환
원하는 형태의 문자열을 파악하기 위해서는 정규식을 이용하는 방법도 있다. 하지만 정규식이 필요할 정도로 복잡하고 정교한 문자열 구조가 아니었고, 해당 문자를 포함하는 값을 걸러내기만 하면 되는 패턴이라 not in으로 포함하지 않는 값만 추출하여 분류할 수 있었다.
데이터 사이언스 스터디를 들으면서 첫 번째 미션 과제로 anaconda와 jupyter를 설치하고, 데이터를 분석하는 것을 하게 되었다. 이번 스터디를 들으면서 처음 알았는데, 파이썬의 로고가 뱀의 형상을 나타낸다는 것이었다.
jupyter를 설치하고 이를 이용하여 파이썬 코드를 작성하고 실행하는 방법을 배웠다. 파이썬은 대부분 API를 작성하는 형태로만 다뤄봐서 이런 툴을 처음 이용해봤다. 코드뿐만 아니라 마크다운으로 기록도 할 수 있는데, velog에서도 마크다운을 사용해왔기 때문에 어렵지 않게 작성할 수 있었다.
import pandas as pd
pandas는 데이터 처리와 분석을 위해 사용하는 라이브러리로, 행과 열로 이루어진 데이터 객체를 다룰 수 있다.
python에서는 import한 라이브러리나 모듈을 as [name]을 통해 변수처럼 접근하며 사용할 수 있다.
pandas의 메소드에 대해 아직 모르는 부분이 많아서 구현하고 싶은 형태가 있으면 찾아보면서 조금씩 학습하고 있다. 작용하는 코드들이 SQL 문법과 비슷한 구석이 있어서 의미를 어렵지 않게 해석하고 사용할 수 있는 것들도 있었다.
이번에는 간단하게 데이터를 다루는 것에 대해 학습했지만, 원하는 결과가 나타나는지 아닌지 바로 확인하면서 답을 찾아가는 과정이 재밌다고 느꼈다.
Elasticsearch에 대해 학습하면서 검색 성능을 개선하기 위해 형태소를 분리하고 분석하는 것을 알고 있었지만, 실제로 상용하는 서비스에서는 오직 형태소 분석기를 통해 문제를 해결할 수 없다는 문제가 존재한다는 점을 알 수 있었다.
이론적인 내용도 당연히 필요하지만 이렇게 실제로 발생하는 예상치 못한 오류나 그것을 처리하는 과정에 대해 알아가는 것도 재미있다.
또한 이 글을 읽으면서 N-gram에 대한 것과 이를 통해 문제를 해결하는 과정을 지켜볼 수 있어서 흥미로웠다.
갑작스럽게 바쁜 일정이 생겨서 공부에만 집중하는 시간이 많지는 않지만, 꾸준히 데이터를 다루는 공부도 하고 다양한 개발과 오류 해결 사례 이야기를 접하면서 흥미를 잃지 않으려고 노력하고 있다.