본문 바로가기

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를 쓰면 전체를 확인 하는 것에 비해 속도가 빠를 것입니다. Tree를 쓰면 내가 이미 타고온 반대쪽은 탐색을 하지 않아도 되기 때문에 속도가 O(log n)이 되는 것입니다. 여기에서 이진트리라면 O(log 2)가 될 것이고 삼진트리라면 O(log 3..
Python에서 sqllite3이용하기(json insert, select) 개요 데이터를 핸들링 하다보면 file한개가 사이즈가 큰 경우가 있습니다. 크다는 것은 기준이 다르겠지만 파이썬 pandas dataframe을 쓰려고 할때 파일 크기가 1기가만 되도 노트북 기준으로는 30초씩 걸릴때도 있습니다. 한번 실행 할 때마다 30초씩 걸리면 기다리다 시간이 다 가는 경우가 많습니다. 그래서 파일을 필요한 부분 만큼만 불러오고 싶은데 그냥 파일로 되어 있으면 검색이 잘 안되기 때문에 sqllite3를 사용하는 방법을 생각 해보았습니다. 아래 road_name.json은 931Mb짜리 도로명 주소 전체 데이터(전국) 중에 4개 field만 뽑아놓은 데이터입니다. 그래도 1기가 정도 됩니다. 이 파일을 매번 불러와서 df로 만들어 연산을 하려니 너무 느렸습니다. Create DB, ..