반응형

Programming/Python 61

[Python] 큰 데이터 사이즈 읽는 방법(Iterator, Generator)

파이썬에서 데이터를 읽을때, 보통은 모든 데이터를 메모리에 올리고 사용하는 경우가 많다. 하지만, 작은 사이즈의 데이터는 가능하지만 큰 사이즈의 데이터를 메모리에 올리고 사용하는게 가능하다면? 피시에 감사하자. 큰 데이터셋을 사용하는 경우인 데이터 학습 시킬 학습 데이터, 통계를 낼때 데이터 등등.. 이때는 데이터를 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로 생..

Programming/Python 2019.01.16

[부동산 데이터 분석] #3. 실거래데이터 쌓기 (데이터를 꼭 DB에 저장해야 한다는 생각을 버려~ 노하우 공유!!)

​ [부동산 데이터 분석] #3. 실거래데이터 쌓기 (데이터를 꼭 DB에 저장해야 한다는 생각을 버려~ 노하우 공유!!)​ # 주제 부동산 데이터 분석 [부동산 데이터 분석] #1.데이터의 출처 어디일까? 공공데이터 포털의 실체 (feat. Postman) 내집마련이 시급하다!​ [부동산 데이터 분석] #2.재료만들기 (“11110” 아는사람은 Skip, 모르면 드루와)​ 에 이어서 실거래 매매 데이터 쌓기 최종회! 어떻게 함수형태로 구성하고 데이터를 저장할까~? # 오늘 다루는 주제 * 이전 영상 리뷰 * 파이썬 함수형태 * 어떻데 유니크한값을 찾을까? * 데이터 저장할때 어떻게 효율적으로? 데이터 저장구조 * 날짜데이터는 어떻게 생성할까? (datetime) * 주피터랩 (JuipyterLab) * ..

Programming/Python 2018.12.06

네이버 댓글 봇, 야구 자동예매 어떻게 만들어지는 걸까? (Selenium with Python을 이용한 자동화를 해보자!!!)

​ 유투브 바로가기​ # 주제 안녕하세요 동화입니다. 네이버 댓글 봇, 야구자동예매, 웹클롤러는 어떻게 만들어질까? 브라우저에서 하는 작업을 모든것을 자동화할 수 있습니다. 잘못 사용하면 악용이 될 수 있습니다. # 오늘 다루는 주제 * 네이버 댓글 논란! 어떻게 만들어지는 걸까 ? * 나보다 빠른 예매, 야구 공연 티켓을 어떻게 할까? * 데이터를 모으는 크롤링(Crawling)은 어떻게 할까? * Selenium, WebDriver를 설치하고, 실습까지!! * 브라우저에서 하는 모든 작업은 자동화가 가능합니다! # URLs * https://selenium-python.readthedocs.io/ *http://chromedriver.chromium.org/downloads * http://ourcs..

Programming/Python 2018.11.21

[Paper] Neural Factorization Machines for Sparse Predictive Analytics

Neural Factorization Machines for Sparse Predictive Analytics Abstract web applications의 predictive tasks는 categorical variables을 modeling하는게 필요하다. categorical data user IDs demographics genders occupations standard machine learning에서는 binary features의 set으로 변환을 했다 (one-hot encoding). 결과적으로 feature vector는 highly sparse한 결과물이 생긴다. 이러한 sparse data를 효과적으로 학습하기 위해서는 features 사이에 interactions를 설명하는게..

Programming/Python 2018.10.20

[Python] Jupyter Notebook에서 Slack 메시지 보내기

쥬피터(Jupyter) Notebook에서 Slack 메시지를 보내는 방법 데이터 분석일을 하다보니 작업을 돌려놓고, 다른 업무를 보는 일이 많다. 여러개를 병렬적으로 돌려야 하다보니, 언제 어떤 작업이 완료했는지 알람을 받는게 필요했다. 일단 단계는 4단계로 크게 나누어 봤다. sendlogto_slack 의 python 코드 작성 sendlogto_slack을 bashrc에 alias로 지정 ipython에서 alias를 추가하는 부분 코드 작성 및 startup 스크립트 작성 ipython에서 alias로 메시지보내기 사용 sendlogto_slack 파이썬 코드 작성하기 bashrc에 alias로 등록 bashrc에 아래 코드 추가 alias msg="python send_log_to_slack...

Programming/Python 2018.10.20

[Python] pickle을 사용해 dictionary 저장 및 로드

파이썬에서 pickle을 이용해 dictionary를 저장하고 로드하는 방법 중간 결과를 저장하거나, 최정 결과를 저장하기 위해 dictionary의 객체를 그대로 로컬의 디스크로 저장하는 방법은 자주 필요하다. key, map을 만드는 경우에도 중간 데이터를 생성해 놓은 뒤에, 이미 데이터가 있는 경우에는 로드해서 바로 사용하면 효율적이다. 코드 pickle을 이용해 데이터의 사이즈를 줄이고, 기존 textfile로 저장, 로드의 시간 소요가 절약된다.

Programming/Python 2018.10.20

[Python] Pandas에서 truncation 없이 출력 하는 방법

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/

Programming/Python 2018.10.20

[Python] Pandas Dataframe을 예쁘게 출력하는 방법

Jupyter를 사용하면, 셀마다 출력을 하기 때문에, df.head(10)으로 하면, 화면에 예쁘게(?) 출력이 된다. 하지만 여러개의 dataframe을 출력하게 되면, 위 처럼 결과가 출력되지 않는다. 사실 구조적으로 df.head(10)은 interactive할때만 출력되기 때문에, print df.head(10) 이 문법이 맞다. df.head(10)의 결과는 df와 동일한 Dataframe의 결과를 돌려주기 때문에! 그래서 별도의 처리가 필요하다.

Programming/Python 2018.10.20

[Python] Pandas csv를 dataframe으로 읽고 쓰는 방법

Python에서 DataFrame을 임시 데이터를 저장하는 방법 loc2countdf.tocsv('loc_count.csv') def getdf(cols, filename, sep='\t'): # filename = 'tschkeywordfreq.tsv' itercsv = pd.readcsv(filename,iterator=True, chunksize=1000, sep=sep, names=cols) # df = pd.concat([chunk[chunk['field'] > constant] for chunk in itercsv]) df = pd.concat([chunk for chunk in itercsv]) return df

Programming/Python 2018.10.20

[Python] Jupyter matplot한글 깨짐 현상

파이썬 쥬피터(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 나눔글씨체 설치하는 방법 http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%..

Programming/Python 2018.10.20
반응형