작성일자 : 2023-11-25
Ver 0.1.1
0. Intro
빅데이터 분석기사 실기 시험을 일주일 앞두고 있다.
빅데이터 분석기사 실기 시험은 구름(goorm)이라는 온라인 환경에서 진행되며, 지원되는 모듈 및 패키지가 제한되어 있다.
그리고 VS Code와 같은 일반적인 에디터의 경우 모듈 및 함수의 자동완성 기능을 지원하기 때문에 사용할 모듈과 함수를 반드시 외울 필요까지는 없지만, 시험 환경에서는 자동완성 기능을 지원하지 않고, 구글링과 같은 온라인 검색이 당연히 제한되기 때문에 문제 풀이를 위한 모듈 및 함수명 그리고 사용법을 기억해야한다. 모든 것을 기억한다면 정말 좋겠지만, 그렇지만 만약 시험을 치르는 과정에서 생각이 나지 않는다면 어떻게 해야할까?
dir()과 help()를 사용하면 아주 아주 큰 도움이 될 수 있다.
나 역시 모듈명과 함수명 그리고 사용법에 대해서 최대한 외우고 시험을 치르려고 하지만, dir()과 help()를 잘 사용할 수 있도록 훈련도 하고 있다.
dir()과 help()는 꼭 시험을 위해서만이 아니더라도 구글링하지 않고, 코드를 작성할 수 있는 방법이기에 익혀두면 좋을 것이라는 생각도 들기에 사용법에 대해서 잘 익혀둔다면, python 코드 작성시 아주 큰 도움이 될것이라 생각한다.
상황 이해를 위해 한가지 시나리오를 가정해보겠다.
pandas 모듈의 함수를 이용하여 원핫 인코딩이 필요한데, 함수명 및 사용법이 생각이 안난다.
이럴때 dir() 과 help() 함수를 사용하여 문제를 해결해보도록 하겠다.
1. dir()
dir 함수는 어떤 객체가 가지고 있는 속성과 메소드의 목록을 문자열로 구성된 리스트 형태로 반환한다.
즉, 객체의 속성과 메소드를 확인하는 데 사용된다.
아래 화면은 pandas module을 import한 이후에 dir() 함수를 사용하여 module을 구성하는 함수 및 메소드를 print 한 결과이다.
앞서 이야기 한대로 리스트 형태로 출력이 되기 때문에 리스트에서 가독성이 다소 떨어져 보이기도 하다.
str 모듈의 join 함수를 사용하여 가독성 향상을 위해 세로 형태로 한줄로 리스트를 보게 할 수도 있다.
import pandas as pd
# dir(pandas)의 결과를 개행 문자로 구분하여 출력
print("\n".join(dir(pd)))
위 결과처럼 join 함수를 사용하여 세로 형태로 리스트가 출력되면서 가독성이 좀 더 나아져서 함수들이 더 보기 쉽게 눈에 들어오게 되었다. pandas를 구성하는 패키지 및 함수가 많아서 모두 캡쳐하진 못하고 그 중 일부 화면을 캡쳐해보았다.
유형 2에서 범주형 컬럼을 원핫 인코딩 할 때 사용하는 함수인 get_dummies가 보인다.
물론 원핫인코딩을 수행해주는 함수가 get_dummies라는 것을 미리 알고 있어야 해당 함수를 사용해야겠다라는 결정을 할 수 있긴하다.
이는 사전에 공부를 해야하는 부분이고, 이것 마저 생각이 안난다면 유력한 후보의 함수에 대해서 일일히 help()를 해보는 방법 밖에 없지 않을까 싶다.
이런 방법으로 dir 함수를 활용하여 모듈에 있는 다른 패키지 및 함수의 리스트를 조회할 수 있다.
함수를 찾았는데,,, 만약 사용법을 모르겠다면?!?!? 그럴 때는 help() 함수를 사용하면 된다.
2. help()
help 함수는 주어진 객체나 모듈에 대한 도움말 정보를 표시한다. 객체의 docstring이 정의되어 있다면 해당 내용을 보여주어 코드나 모듈의 기능을 이해하는 데 도움을 준다.
help() 함수의 사용법은 간단하다. 아래와 같이 괄호안에 들어갈 함수명을 적어주면 된다.
# pandas import
import pandas as pd
# dir(pandas)의 결과를 개행 문자로 구분하여 출력
# print("\n".join(dir(pd)))
# get_dummies 함수 사용법 확인
help(pd.get_dummies)
help(함수명)을 조회하면 위와 같이 함수의 구문과 parameter에 대한 간단한 설명이 나온다.
물론 영어로 나오기에,,, 이에 대한 해석이 가능할 정도의 영어 실력이 필요하단 점이 단점이라면 단점이다.
많이 다뤄보지 않은 함수이거나 사용법이 헷갈린다면 설명만 나온다고 해서 함수를 사용하기는 어렵다.
다행히도 help () 함수를 사용한 결과 아래로 내려가면 아래처럼 Examples 코드가 있다.
이렇게 예제 코드 및 결과를 보면서 사용법이 헷갈렸던 함수에 대해서 사용법이 구체화되거나 처음 사용해보는 함수에 대해서 적용이 가능해진다.
dir() 사용시 활용했던 join() 함수의 사용법에 대해서 help의 결과도 확인해보겠다.
help(str.join)
정말 유용한 내장함수가 아닌가?!?
물론 help 기능은 함수명이 달라도 R이나 Terminal에서도 지원하는 기능이고, 우리에겐 구글링이 있기에 잘 사용 안하는 기능이긴하지만, 이번 빅분기 시험을 준비하면서 중요성에 대해서 체감하고 있다!
3. Wrap up
pandas의 get_dummies 함수명과 함수 사용법에 대해서 확인 하고 싶을 때라는 시나리오를 가정하여 두 내장함수 사용을 해보았다.
Intro에서 언급한대로 시험에 필요한 모든 함수명 및 사용법에 대해서 100% 외우고 간다면 다행이겠지만,,
시험을 치다보면 당일에 갑자기 기억이 안난다거나 또 다른 변수가 발생할 수도 있다.
이럴 경우를 대비하여 dir(), help() 함수 사용법에 대해서 익혀둔다면 아주 큰 도움이 될 것이다.