다시 jupyter 로...
1. 다시 Jupyter 으로..
우선 내가 지금까지 주로 사용하고 있는 Spyder 의 장점!
1) Variables 를 확인하기 매우 편하다
- Variable Explorer 에서 list, array, dataframe 등을 클릭해서 한번에 보기 좋다. 너무 크지만 않으면 금방 뜬다.
2) 이미지를 복사해서 붙여넣기 편하다.
- 캡쳐하거나 save 할 필요없이 Plot Tab에서 복사하면 엑셀이든 어디든 바로 붙여넣기 좋다.
3) 한 번에 긴 코드를 짜기 좋다 (이건 jupyter notebook 제외한 다른 ide 공통)
단점! Variables 를 보는데 에러가 자주 발생한다!!
가장 큰 강점이 Variables 보는 건데 이걸 못보게되니까 정말 쓰기 싫어지더라.
그리고 가끔 변수나 이미지가 많아지면 느려져서 답답할 때도 있다.
그래서 다시 Jupyter로 돌아갔다. Jupyter Notebook보다 조금 더 사용하기 편한 Jupyter Lab 으로!
Spyder 보다 안정적이어서 돌아간거지만 장점이 많다.
일단 첫번째 장점으로는 대부분의 패키지들의 구현이 Jupyter Notebook 기준으로 tutorial 이 작성되어 있다.
그래서 가끔 Spyder Pycharm Vscode 같은 IDE 에서는 패키지들이 가지고 있는 기능들을 다 적용해보지 못할 때가 있다.
주기능은 아니고 보통 시각화 관련이지만 데이터 분석에서 시각화는 매우 중요하기 때문에 못보면 아쉽다!
두번째 장점으로는 나만 그럴 수 있지만 코드를 간결하게 쓰게 된다.
쥬피터 노트북에서는 셀을 길게 쓰면 스크롤하기 매우 불편해져서 코드를 짧게 쓰려고 노력한다.
다시 한 번 말하지만 코딩을 하면서 늘 느끼는거는 간결한 코드가 가장 좋은 코드!
2. 설치
!pip install jupyterlab
command 창에서 jupyter lab 이라고 치면 실행된다.
설치는 띄어쓰기 없고, 실행은 띄어쓰기 해줘야 한다.
DataFrame 의 컬럼이 몇개 안되는 경우 다 나오긴하지만
보통 빅데이터를 다룰 때에는 Columns, Rows 너무 많아서 다 안보이는 경우가 많다.
중간에 생략돼서 컬럼이 뭐가 있는지도 모르고.
Jupyter 에서 DataFrame 전체를 확인하는 방법은 두가지가 있다.
1) Jupyter Lab Variable Inspector 확장 툴 설치
2) pd.set_option 을 활용해서 전체 Columns, Rows 보기.
먼저 jupyter lab variable inspector 는 변수 확인을 용이하게 해준다.
!pip install lckr-jupyterlab-variableinspector
혹은 아래 캡쳐의 퍼즐같은 아이콘 클릭하고 variableinspector 검색 후 인스톨해주면 된다.
셀에서 우클릭 후 open variable inspector 클릭하면 탭이 새로 뜬다.
요렇게 아래서 variable 확인할 수 있다.
돋보기 클릭하면 DataFrame 도 확인할 수 있다.
툴 설치 없이 확인하는 방법!
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
몇개 볼지 숫자 정하려면 None 안에 개수 입력한다.
3. Enable Scrolling
셀별로 실행하다보면 너무 결과셀이 길어지는 경우가 있다. 그럴 땐 결과셀 우클릭 후 Enable Scrolling for Outputs 를 클릭한다.
전체 Ctrl + A > 우클릭 > Enable Scrolling for Outputs 하면 전체 결과 셀을 줄일 수 있다.
4. ipynb to py
jupyter 에서는 작성한 코드가 ipynb 로 저장되는데 module 화 해서 끌어다 쓸 때는 py 로 변환해줘야 한다.
!pip install nbconvert
!jupyter nbconvert --to script abc.ipynb
위 abc 대신에 filename 으로 바꾼다.
jupyter input 창에서 입력해도 되고, terminal 창에서 입력해도 변환 가능하다.
쥬피터랩을 메인으로 좀 더 사용하면서 꿀팁들 모아서 다시 한 번 포스팅할 예정이다.