본문 바로가기

Language/Python

(76)
Python *(별표)파라메터 **(별별)파라메터 파이썬에서 함수의 파라메터 앞에 *또는 **이 붙어 있는 경우가 있습니다. 다른 언어에는 잘 없는 형태라서 파이썬을 처음 하시거나 익숙하지 않으신 분들은 이게 뭔가 싶을때가 있습니다. * 파라메터 *는 쉽게 말하면 파라메터로 넘어오는 각 값들을 list형태로 받겠다는 뜻입니다. def make_coffee(*matreials): 이렇게 *로 받아서 for item in matreials: 이렇게 이터레이터가 됩니다. 코드를 보겠습니다. def make_coffee(*matreials): mixed = '' for item in matreials: mixed += item print(mixed) make_coffee('water', 'espresso') 결과 waterespresso 스타벅스에서 커피를 주..
Python venv만들기, package install and conda 개요 Python개발을 하다보면 venv를 잘 구분해서 써야 할 때가 생깁니다. 예를들면 project는 여러개인데 각 프로젝트 별로 requirements.txt를 구분해서 써야 하는 경우라던지 말이죠. 그래서 venv를 구성하고 지우는 방법을 찾아보았습니다. 저는 Mac을 쓰고 있고 작업 환경은 윈도우라서 두가지를 찾아 보았습니다. Mac venv만들기 python3 -m venv venv source venv/bin/activate 결과 현재 설치된 package목록 보기 pip freeze 현재 설치된 package들을 requirements.txt로 저장하기 pip freeze > requirements.txt requirements.txt에 있는 package설치 하기 pip install -..
Python Flask Pycharm Community Edition에서 개발환경 구축하기 Pycharm Community Edition은 무료지만 편의 기능들이 많이 빠져있습니다. 그 중에 하나가 Flask를 지원하는 탬플릿입니다. 저처럼 Ultimit을 사기는 아깝고 Pycharm은 꼭 쓰고 싶은 경우 flask연동 탬플릿을 만들어서 쓸 수 있습니다. 먼저 일반 파이썬 프로젝트를 하나 빌드 합니다. community버전은 선택지가 별로 없기 때문에 맨 위에 있는 Pure Python으로 빌드 하면 됩니다. 그리고 Virtualenv로 해줍니다. 이 옵션으로 해주면 pip install로 flask를 설치 해주어야 flask를 쓸 수 있겠지요? 그 다음 우측 상단 Edit Configurations... 로 갑니다. 이 화면에서 Windows같은 경우는 Script path로 되어있는데 누르..
How to query Elastic Search in Python 개요 SQL은 알고 있지만 Elastic Search에서 쿼리를 하려면 엘라스틱서치만의 문법으로 쿼리를 해주어야 합니다. 이 포스트는 SQL을 엘라스틱쿼리로 바꿔서 질의하는 내용에 대해 다룹니다. 엘라스틱서치는 이하 es라고 하겠습니다. krksap.tistory.com/1634 Elastic Search(엘라스틱서치) 설치(win), 명령어 설치.windows10 www.elastic.co/downloads/elasticsearch?latest [ Download Elasticsearch Free | Get Started Now | Elastic | Elastic Want it hosted? Deploy on Elastic Cloud. Get Started » www.elastic.c.. krksap...
Python hashlib로 sha256인코딩한 hex값 만들기 Python hashlib로 sha256인코딩한 hex값 만들기 Hash는 암호화된 값입니다. 012345 위와 같이 값을 배열에 저장 하려면 arr[0] = 'hello' 이렇게 저장을 하면 되지만 012345hello 저장된 값에 접근을 하려면 반드시 index를 알아야 합니다. index를 모른다면 배열을 0번부터 원하는 값이 나올때까지 모두 검색을 해야 합니다. 그래서 배열 번호로 접근 하는 것이 아니라 key로 데이터에 접근을 하기 위해 Hash를 사용하는데 Hash를 사용하는 맵은 HashMap이라고 합니다. Hash는 Hash를 만들어주는 함수가 있고 그 함수가 return하는 값은 배열의 번호 입니다. 예를들어 'aa'라는 key를 make_hash(char) ..
Python Pandas Merge(Join) 조인 합치기 krksap.tistory.com/1468 내용이 길어져서 위 글에서 분리 했습니다. 'Python Pandas 사용 방법' www.youtube.com/watch?v=xNkLIimJlKA 이 내용은 데이터베이스 정규화, Join에 대해 알고 써야 해서 위 링크를 첨부합니다. 데이터를 다루다 보면 데이터를 합치고 싶을 때가 있습니다. 물론 pandas에서도 합칠 수 있습니다. 이 기능을 join이라고 하는데 pandas에서는 .merge()함수로 join을 구현 할 수 있습니다. Merge(join) inner join import pandas as pd from pandas import DataFrame as df 과자목록1 = ['초코-파이','몽-쉘','빼빼로','호두파이','별-사탕'] 과자목록2..
Python에서 주소로 Tree만들기 법정동코드, 행정동코드 바꾸는 예제 개요 자료구조로 tree를 쓰는 이유는 탐색 속도를 빠르게 하기 위함입니다. Tree를 쓰면 어떻게 빨라지는가 하면 내가 이미 타고온 반대쪽은 탐색을 하지 않아도 되기 때문에 속도가 O(log n)이 되는 것입니다. 이런 트리가 있다고 가정 해봅시다. 경기도 광주시 오포읍을 찾아가려면 트리의 경우는 '경기'로 가서 '광주시'를 찾고 '오포읍'을 찾으면 됩니다. '서울'에 무슨 구가 있던지 무슨 동이 있던지 전혀 신경을 쓸 필요가 없습니다. 반대로 위와 같은 list가 있다고 생각 해봅시다. 대부분의 자료는 위와 같이 list형태로 되어 있는 경우가 많습니다. db에 주소가 들어가 있으면 위와 같이 들어 있을 것입니다. 데이터가 위와 같이 4개 밖에 없다면 '경기도 광주시 오포읍'을 금방 찾겠지만 실제로 ..
Python에서 sqllite3이용하기(json insert, select) 개요 데이터를 핸들링 하다보면 file한개가 사이즈가 큰 경우가 있습니다. 크다는 것은 기준이 다르겠지만 파이썬 pandas dataframe을 쓰려고 할때 파일 크기가 1기가만 되도 노트북 기준으로는 30초씩 걸릴때도 있습니다. 한번 실행 할 때마다 30초씩 걸리면 기다리다 시간이 다 가는 경우가 많습니다. 그래서 파일을 필요한 부분 만큼만 불러오고 싶은데 그냥 파일로 되어 있으면 검색이 잘 안되기 때문에 sqllite3를 사용하는 방법을 생각 해보았습니다. 아래 road_name.json은 931Mb짜리 도로명 주소 전체 데이터(전국) 중에 4개 field만 뽑아놓은 데이터입니다. 그래도 1기가 정도 됩니다. 이 파일을 매번 불러와서 df로 만들어 연산을 하려니 너무 느렸습니다. Create DB, ..