반응형

Python 40

[Python] 데이터 포맷 변환 - Protocol Buffer를 Json으로 변환

들어가며 데이터 포맷은 참... 다양합니다. json부터 시작해서 csv, protocol buffer, text 등등.. 이번에는 protocol buffer를 json의 형태로 변환하는 방법에 대해서 알아보려고 합니다. 왜 필요하느냐.. 저 같은 경우에는 spark에서 데이터를 처리하기 위해서 변환을 했습니다. 사실 스파크에서는 protocol buffer를 지원하기 때문에 그대로 읽으면 되지만, tweeter에서 제공하는 elephant-bird 라이브러리를 함께 사용해야 하는 복잡함이 있다. 그것보다 아직 protocol buffer를 읽어서 spark에서 처리한 내용이 거의 없었다. 내가 찾아봤을때는 elephant-bird와 scala를 이용해서 읽어보려고 했으나 많은 dependency 등과..

Programming/Python 2016.08.03

[데이터 분석] Python 라이브러리 - Pandas, Matplotlib, Numpy 10분만에 배우기

Python에서 데이터 분석을 위한 라이브러리 Pandas, Matplotlib, Numpy를 10분만에 익히는 방법 python에서 데이터 분석을 하기 위해서는 주로 사용하는 라이브러리가 있습니다. pandas, matplotlib, numpy입니다. 패키지들을 이용하는 이유는 데이터 분석을 용이하게 할 수 있도록, matrix연산과 시각화를 지원합니다. pandas는 DataFrame, Series의 데이터 객체를 이용해서 데이터를 쉽게 가공을 할 수 있습니다. 더나아가 평균, 분산, 최대, 최소 등을 쉽게 연산할 수 있습니다. 그 외에도 데이터 변수 사이에 연관성, 그룹, 선택, 조인 등의 다양한 함수를 통해 matrix를 효율적으로 쉽게 가공 할 수 있습니다. matplotlib은 데이터의 분포 ..

데이터분석 2016.07.07

[Python] Enum 사용하는 방법 및 예제코드

들어가며 파이썬에서는 다른언어와는 다르게 기본적으로 Enum을 제공하지 않습니다. 하지만 역시 파이썬은 모듈이 많은게 장점이기 때문에 enum모듈을 설치하고 사용이 가능합니다. 설치하는 방법과 예제 코드에 대해서 설명해드리겠습니다. 설치하기 sudo pip install enum 예제코드 # Color Enum 정의하기 class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 # 사용하기 Color.RED # 1 Color.GREEN # 2 Color.BLUE # 3

Programming/Python 2016.05.31

[Python] collections를 이용한 Dictionary 정렬하기

collections 모듈을 이용해 dict 정렬하기 파이썬에서 자주 사용하는 Dictionary를 정렬하는 방법은 operator를 사용하는 방법도 있습니다. [바로가기] 이번에는 기본 모듈인 collections를 이용해서 dict 정렬하는 예제입니다. 소스코드 {2:3, 1:89, 4:5, 3:0} --> {1:89, 2:3, 3:0, 4:5} {2:3, 1:89, 4:5, 3:0}의 dict형태의 데이터를 저장하고, collections을 import 합니다. OrderedDict을 통해 정렬을 하는데, 이때 안에는 sorted(dict.items())를 넘겨주시면 됩니다. 아무래도 key와 value가 모두 정렬되니. 간편하게 사용이 가능 합니다. dict = {2:3, 1:89, 4:5, 3:..

Programming/Python 2016.05.25

[Python] json 모듈 사용하기 :: String을 Dict으로 변환

들어가며 HTTP 통신을 하면서 data를 주고 받을 경우에 json형태로 데이터를 주고 받을 때가 많습니다. 또한 python에서는 dict의 type을 자주 사용하기 때문에 String을 dict으로 변환할 줄 알아야 하는데요. 아래 예제 코드는 json, dict 형태의 string을 json모듈을 이용해 dict의 type으로 변환해주는 코드입니다. python을 다룰때 가장 많이 사용하는 object중 하나가 dict이기 때문에 dict, json, string간의 변환이 자유로우면 상당한 무기가 될 수 있습니다. 예제코드 import json dict_string = '{"foo":"bar", "foo2":"bar2"}' # type(dict_string) # dict = json.loads(..

Programming/Python 2016.05.25

[Python] timestamp를 datetime으로, datetime을 timestamp로 변환하는 방법

들어가며 서버 작업을 하다보면 timestamp와 datetime을 자주 사용하게 된다. 로그 파일명이나 로그를 남기는 안에 내용도 시간이 포함되어 있어야 하니까, 가끔 파일에 작성하고, 파일에서 시간을 읽었을때 datetime의 형태로 string인 값을 받아올 때가 있는데, 이때는 String값을 datetime으로 변환할 줄 알아야한다. 또한 로그를 남길때 거의 대부분 timestamp로 남긴 후에 나중에 내가 보기 편한 형태로 변형하기 위해서 datetime형태로 작성을한다. 마지막은 보너스입니다. 총 3가지의 방법에 대해서 설명한다. String의 값을 datetime으로 변환하는 방법timestamp를 datetime으로 변환하는 방법datetime을 timestamp로 변환하는 방법 예제 코..

Programming/Python 2016.05.25

[Python] Python Singleton Pattern

들어가며 Design Pattern 중 필요에 의해 자주 사용하는 singleton pattern에 대해서 알아보려고 합니다. Python에서는 Singleton Pattern을 구현하는 방법이 4가지가 있습니다. get_instance와 __init__을 제공하는 방법, main, inner class를 구현하는 방법, decorator를 이용하는 방법(decorator도 하나의 디자인 패턴을 말하는데, 기능 확장이 필요할 때 서브 클래싱 대신에 사용을 합니다.), 마지막으로 가장 많이 사용하는 metaclass를 이용하는 방법입니다. 아무래도 구현하는 방법이 4가지가 있다는 얘기를 해석하면, 한 클래스에서 하나의 객체를 생성하도록 제한을 할 수 있는 방법이 4가지가 있다고 생각하시면 됩니다. 1 .g..

Programming/Python 2016.05.23

[Python] Type Class와 Meta Class

Python Type Class, Meta Class 파이썬은 동적 바인딩 프로그래밍 언어입니다. 여기서 동적바인딩이란 프로그램 실행 중에 자료형과 함수의 타입이 결정되는 것을 말합니다. 즉 코딩을 할때 값이 어느 변수의 타입인지 할당이 되지 않고, 프로그램을 우리가 실제로 동작을 하는 동시에 자료형과 함수의 타입이 그때 그때마다 결정이 됩니다. 파이썬에서 하나의 장점이자 단점이 변수를 생성할때 type을 지정하지 않는것도 파이썬이 동적 바인딩 프로그래밍 언어라는 사실을 알 수 있습니다. 하지만 동적바인딩의 가장 단점은 타입이 정해져 있지 않기 때문에 정적 바인딩(사전에 자료형과 함수의 타입이 정해져있는)에 비해 실행 속도가 느립니다. 이번 글에서는 type class와 meta class에 대해서 설명..

Programming/Python 2016.05.23

[Python] 차트 그리기 :: Pandas, Matplotlib, Numpy

들어가며 데이터 분석을 하다보면, 시각화(Visualization)을 해야한다. 우리가 물론 값을 눈으로 확인하면 되지만, 전체적인 추이를 확인하거나, 일정 패턴이 있는지 확인하기 위해서는 그래프만큼 좋은게 없다. 파이썬은 데이터 분석을 하기 위해한 모듈이 갖춰져 있어 많은 사람들이 사용한다. R이나 Matlab을 사용하는 사람도 많지만, 뭐 셋다 거의 비슷비슷하다. 내 주위 사람은 matlab을 사용하다가 파이썬으로 넘어오기도 한다. 그 이유는 약간 파이썬이 구현적인 느낌을 받는다나... 사실 왜 넘어온지는 모르겠지만 일단! 파이썬에서는 Pandas, Matplotlib, Scipy, Numpy를 이용하고, 거기에 machine-learning을 하기 위한 scikit-learn만 잘쓰면 어디서 데이터..

Programming/Python 2016.05.20

[Python] Python Logging 파이썬 로깅 모듈

들어가며 파이썬 표준 라이브러리인 logging은 아주 강력한놈입니다. 이제 다시는... print문과 file.write를 이용해서 로그를 남기지 마세요. 우리 스마트하게 로그를 남깁시다. logging은 다양한 기능을 제공하고 있습니다. 스트림과 파일에 동시에 로그를 남기거나, 로그 레벨에 따라 출력되는 로그를 제한 할 수 있습니다. 또한 로그는 축적되는 양이 많기 때문에 예외를 처리해야 하는 내용이 많습니다. 그 중에 파일 크기가 일정 크기를 넘어가면 새로운 로그 파일을 자동으로 생성하는 기능 또한 제공합니다. 아래 래퍼런스를 통해 더 자세한 내용을 확인 하실 수 있습니다. Singleton Pattern으로 CustomLogger를 작성하여 사용한 사례를 포스팅한 내용이 있습니다. 어떤식으로 로깅..

Programming/Python 2016.05.20
반응형