Python/Python 프로그래밍: 68개의 글
파이썬에서 데이터를 읽을때, 보통은 모든 데이터를 메모리에 올리고 사용하는 경우가 많다. 하지만, 작은 사이즈의 데이터는 가능하지만 큰 사이즈의 데이터를 메모리에 올리고 사용하는게 가능하다면? 피시에 감사하자. 큰 데이터셋을 사용하는 경우인 데이터 학습 시킬 학습 데이터, 통계를 낼때 데이터 등등.. 이때는 데이터를 built-in 함수인 iterator, generator를 이용을 해야만 한다. MUST!! Iterator, Generator 자 interation을 어떻게 쓰는게 좋은가? python for x in range(10): print x range(10)은 리스트를 생성하는것과 동일하다. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list를 iteration object로 생..
쥬피터(Jupyter) Notebook에서 Slack 메시지를 보내는 방법 데이터 분석일을 하다보니 작업을 돌려놓고, 다른 업무를 보는 일이 많다. 여러개를 병렬적으로 돌려야 하다보니, 언제 어떤 작업이 완료했는지 알람을 받는게 필요했다. 일단 단계는 4단계로 크게 나누어 봤다. sendlogto_slack 의 python 코드 작성 sendlogto_slack을 bashrc에 alias로 지정 ipython에서 alias를 추가하는 부분 코드 작성 및 startup 스크립트 작성 ipython에서 alias로 메시지보내기 사용 sendlogto_slack 파이썬 코드 작성하기 # -*- encoding: utf8 -*- def send_log_to_slack(text): channel = '' impo..
파이썬에서 pickle을 이용해 dictionary를 저장하고 로드하는 방법 중간 결과를 저장하거나, 최정 결과를 저장하기 위해 dictionary의 객체를 그대로 로컬의 디스크로 저장하는 방법은 자주 필요하다. key, map을 만드는 경우에도 중간 데이터를 생성해 놓은 뒤에, 이미 데이터가 있는 경우에는 로드해서 바로 사용하면 효율적이다. 코드 pickle을 이용해 데이터의 사이즈를 줄이고, 기존 textfile로 저장, 로드의 시간 소요가 절약된다. import pickle a = {'hello': 'world'} with open('filename.pickle', 'wb') as handle: pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL) w..
python에서 dataframe을 사용하다 보면, 결과가 ...으로 나오는 경우가 있다. 전체적인 결과를 보고 싶을때는 간단하게 pd에 option을 세팅해주면 된다. (display all text in a cell without truncation) pd.set_option('display.max_colwidth', -1) 그 외에도 다양하게 option을 변경해서, rows, heights을 변경할 수 있다. HTML코드도 출력이 가능하다. 아래 참고 참고 http://songhuiming.github.io/pages/2017/04/02/jupyter-and-pandas-display/
Jupyter notebook background로 실행하는 방법 & token 확인하는 방법 python 코드를 jupyter notebook에서 사용을 자주하는데 이때 평소대로 jupyter notebook을 터미널에서 실행시키면 터미널이 종료되는 시점에 jupyter notebook도 같이 종료되게 된다. jupyter notebook은 아래와 같은 명령어로 시작을 할 수 있다. jupyter-notebook 위 처럼 실행을 하면 localhost에서만 접속이 가능하기 때문에 만약 서버로서 노트북을 실행시키고 싶으면 --ip=0.0.0.0을 함께 넣어줘야 한다. 터미널과 상관없이 백그라운드에서 jupyter notebook을 실행 하는 방법에 대해서 알아보자. 물론 터미널이 종료되던, 상관없이 항상..
Python 사전(Dictionary)에서 값을 기준으로 topK를 추출하는 방법 python에서 dictionary를 갖고 있을때 (key, value)에서 value를 기반으로 topK를 뽑아내는 방법을 제시한다. 사전에서 값을 기준으로 정렬을 한 뒤에, [:N]을 이용해서 값을 추출할 수 있지만, 간단하게 한줄로 끝낼 수 있다. 기존 파이썬 패키지에 있는 heapq를 이용하면 된다. heapq는 Heap queue algorithm으로 priority queue 알고리즘을 이용해서 값을 찾아낸다. heaps은 binary tree를 이용하기 때문에 O(nlogn) 더 자세한 내용을 및 이론을 알고 싶으면 https://docs.python.org/2/library/heapq.html에서 8.4.3 ..
파이썬에서 pickle을 이용해 dictionary를 저장하고 로드하는 방법 중간 결과를 저장하거나, 최정 결과를 저장하기 위해 dictionary의 객체를 그대로 로컬의 디스크로 저장하는 방법은 자주 필요하다. key, map을 만드는 경우에도 중간 데이터를 생성해 놓은 뒤에, 이미 데이터가 있는 경우에는 로드해서 바로 사용하면 효율적이다. 코드 pickle을 이용해 데이터의 사이즈를 줄이고, 기존 textfile로 저장, 로드의 시간 소요가 절약된다. import pickle a = {'hello': 'world'} with open('filename.pickle', 'wb') as handle: pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL) w..
파이썬에서 튜플(tuple) 리스트를 정렬하는 방법 python sorted_by_second = sorted(data, key=lambda tup: tup[1]) data.sort(key=lambda tup: tup[1]) # sorts in place 출처 : ourcstory.tistory.com/445?category=630693
파이썬 쥬피터(juypter) 한글 깨짐 현상 파이썬에서 주로 사용하는 jupyter notebook에서 한글을 설정 안하면 깨진다. 'ㅁㅁㅁㅁ'로 표시 되기 때문에 한글을 설치하고, 세팅하는 작업이 필요하다 Centos에 한글 나눔 글씨체 설치 ``` $ cd /usr/share/fonts/ $ wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFontTTFALL.zip $ unzip NanumFontTTFALL.zip -d NanumFont $ rm -f NanumFontTTFALL.zip ``` [참고] 2017.02.20 - Centos 나눔글씨체 설치하는 방법 zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4%E..
Python에서 DataFrame을 임시 데이터를 저장하는 방법 pandas를 사용하면서, 중간 데이터를 저장하거나 최종 데이터를 저장을 해야할 때가 있다. 이때 csv로 저장하고, 불러오는 방법을 설명한다. DataFrame을 CSV파일로 저장하기 DataFrame을 CSV로 저장하는 방법은 매우 간단하다. dataframe의 object에서 to_csv의 메소드를 이용하면 된다. datafram.to_csv('result.csv') CSV파일 DataFrame으로 불러오기 csv의 파일을 DataFrame으로 불러오기 위해서는 아래와 같이 실행하면 된다. 이때, 데이터의 크기가 너무 커서 어떤 조건을 만족하는 데이터만을 불러오고 싶으면 iterator=True를 통해서 iteration을 돌려서 가져..