Programming/python(66)
-
[PYTHON] Sqlalchemy ON DUPLICATE KEY UPDATE
DB를 사용함에 있어 PK가 있는 경우에는 Update를, PK가 없는 경우에는 Insert를 써야 하는 경우가 많다.Django에서는 insert_or_update라는 함수를 따로 제공해 줘서 이 API를 이용했던 기억이 있는데, sqlalchemy 같은 경우에는 이러한 기능을 따로 제공하지 않는 것 같다.찾아본 결과 sql 쿼리를 직접 날려서 insert_or_update를 처리하거나, select를 해서 pk 여부를 확인한 후 insert를 하는 방법 이렇게 두가지 방법을 확인하였으며, 두 번째 방법으로 insert_or_update 구현하기로 하였다.(사실 oracle처럼 merge란 방법을 쓰란 것도 있었는데, 이건 진짜 도통 모르겠어서 패쓰~)간략하게 코드 설명을 하자면, 우선 연결되어 있는 ..
2015.06.22 -
[PANDAS] 함수들
ABS각 요소의 절대값을 나타내 준다. APPLY각 열이나 행 전체를 파라미터로 전달하고 결과를 리턴받는다. 위의 첫번째는 b,c,d 각각의 열을 파라미터로 받아 max - min을 진행하였고, 아래 그림은 apple, banana, egg, orange의 각 행을 파라미터로 받아 max - min을 진행한 결과이다. 열이나 행이 아니라 각 요소에 적용하고 싶다면 applymap을 이용한다. 정렬Pandas에서는 sort_index 함수를 이용하여 정렬을 한다. DataFrame, Series 모두 적용 가능하다. 기본적으로 sort_index를 하면 index에 대해 정렬이 되고, axis=1로 설정할 경우 column에 대해서 정렬이 된다.sort_index의 파라미터로 ascending=Fal..
2015.03.23 -
[PANDAS] 산술 연산
DataFrame 간의 연산DataFrame간 연산을 하려면 그냥 연산자와 함께 입력해주면 된다. 위의 그림에서 보면 ['apple','banana','orange'] 인덱스를 가진 dataframe과 ['apple','banana','orange','egg'] 인덱스를 가진dataframe 간의 덧셈 연산을 수행하였다.index가 존재하여 연산할 수 없을 경우에는 NaN으로 표시되는 것을 확인할 수 있다. 또한 Column이 존재하지 않을 때도 NaN표시가 나타난다. 덧셈 연산에 add라는 함수를 이용한 후, option으로 fill_value를 지정해 주면 NaN 대신 지정한 값이 표시된다. 위 그림에서 보면 fill_value를 0으로 지정해주었기 때문에 orange 같은 경우 0 + 33이 되..
2015.03.22 -
[PYTHON] pyenv 설치하기
Virtualenv를 잘 사용하고 있었는데, 어제 스터디를 갔다가 발표자 분께서 pyenv를 사용하고 계신 것을 우연히보게 되었다.pyenv 모지???찾아보니, virtualenv가 python의 패키지 설치 등에 대해 가상환경을 제공하는 것이라면, pyenv는 다양한 python 버전 별로실행해 볼 수 있는 환경을 제공한다고 한다.기존 virtualenv를 pip freeze 한 후 과감히 삭제..이제 pyenv를 깔아보자.pyenv를 apt-get이나 pip로는 받을 수 없고 git을 통해 받아야 하는 것 같다.$> sudo apt-get install curl git-coregithub에 있는 pyenv-installer를 받아서 실행시킨다. (반드시 root 권한에서 실행하자!)$> curl -L..
2015.03.17 -
[PANDAS] row, column 처리
재색인Pandas는 reindex라는 함수를 통해 기존 index를 새롭게 재배치 할 수가 있다.'어?? 분명 Series 공부할 때, obj.index = ['a','b','c','d'] 이런식으로 index를 다르게 줬었는데.. 이건 왜 필요하지??' 분명 이전에 obj.index = ['a','b','c','d'] 이런 식으로 index 명칭을 변경했었다. 하지만 이건 재색인이라기 보다는 그냥단지 index의 명칭을 기존 명칭에서 ['a','b','c','d']로 바꾼 것 뿐이다. reindex에 대한 예제 코드를 본다면 위의 기능과 크게 다른 것임을 느끼게 될 것이다. reindex를 통해 index에 해당하는 값들이 재배치된 것을 확인할 수 있을 것이다. 또한 index에 해당하는 값이 없다면..
2015.03.16 -
[PANDAS] 자료구조
Pandas란?데이터 분석, 데이터 처리 등을 쉽게 하기 위해 만들어진 python package이다.보다 안정적으로 대용량 데이터들을 쉽게 처리할 수 있다고도 알려져 있다.SeriesSeries는 value와 index의 형태를 지니는 Pandas의 자료 구조이다.아래 그림과 같이 [1,3,5,7]의 값을 가지는 리스트를 Series로 생성하게 되면 (1,3,5,7)이라는 value와 (0,1,2,3)이라는 index가생성되어 Series라는 형태의 자료 구조를 만든다.index는 사용자가 직접 생성할 수 있으며, value에 대한 접근은 index를 사용하여 접근한다.Series의 색인은 사용자가 변경하고 싶을 경우 obj.index 값을 변경함으로써 언제든지 변경할 수 있다. 또한 dictionar..
2015.03.15