일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 코드블럭
- freeze_support
- 의사 클래스
- pycharm
- multiprocessing
- idxmax
- HTML
- 금결원
- 티스토리
- 금융결제원
- DataFrame
- QueueHandler
- 진행 상황
- 하이라이트
- Windows
- 구현
- 퀀트
- line number
- 파이썬
- highlight.js
- Tistory
- 필기
- 멀티 로그인
- idxmin
- 웹크롤링
- OpenAPI+
- CSS
- 우리FIS
- pywinauto
- Python
- Today
- Total
목록파이썬 (16)
맨땅에 헤딩하는 사람
pandas는 idxmax(), idxmin()이란 method를 제공한다. parameter axis에 따라(column 혹은 row 기준에 따라) 최대값의 index, column Series를 반환하는 기능을 가진다. 많이 사용하진 않겠지만 DataFrame의 2차원 데이터 중 가장 큰 스칼라 값 하나의 index와 column이 궁금한 경우가 있다. 이는 간단하게 idxmax()를 두 번 적용하는 것으로 해결할 수 있다. 아래 예제 코드를 보자. >>> import pandas as pd >>> import numpy as np >>> df = pd.DataFrame(np.array([[5,2,4],[6,1,5],[7,1,3]]), ... columns=['a', 'b', 'c']) >>> df ..
logging은 파이썬에서 자체적으로 제공하는 로그 패키지다. 여러가지 기능을 제공하므로 굳이 다른 패키지를 찾지 않더라도 유용하게 사용이 가능하지만 멀티프로세스 환경을 자체적으로 보장하지 못하는 문제를 가지고 있다. (멀티 쓰레드에서는 안전하게 동작한다.) logging Cookbook에서는 이러한 점을 언급하며 예제 코드를 제공하고 있으며 이를 참고하여 내가 사용할 클래스를 구현하였다. QueueHandler logging 패키지는 QueueHandler를 제공한다. QueueHandler란 말 그대로 Queue에 logging 할 수 있게 구현된 Handler다. 이 자체는 FileHandler, StreamHandler와 다르게 log 기록 시 파일이나 표준 출력에 기록되지 않고 Queue에 출력..
실행 시간이 긴 프로그램의 경우 간혹 어느 정도 진행되었는지 확인할 필요가 있다. 물론 print()와 carriage return \r 을 사용해서 직접 구현할 수 있지만 계속 출력되는 line이 지저분해 보이기도 하고 매번 직접 구현한 것을 옮겨 사용하기도 애매하다. python에서는 tqdm 이라는 모듈을 사용하여 프로그램의 진행 상황을 깔끔하게 출력할 수 있다. ProgressBar라는 또 다른 모듈이 있긴 하지만 개발이 몇 년 전부터 이루어지지 않고 있으며 속도는 800ns/iter로 tqdm의 60ns/iter보다 느린 속도를 가진다. tqdm 모듈에서 tqdm 클래스를 사용하며 parameter는 다음과 같다. class tqdm(): """ Decorate an iterable object..
키움증권 Open API+에 수동 로그인하기 위해 GUI 윈도우 프로그램 창에서 로그인 정보를 입력해야 할 상황이 생겼다. Python은 pywinauto, pyautogui 등 다양한 GUI 자동화 모듈을 제공하는데 pyautogui가 실제 사용자 입장에서의 키보드, 마우스 움직임에 초점을 맞췄다면 pywinauto는 윈도우즈 프로그램 구성을 토대로 객체 지향적인 방식을 제공하는 느낌이다. 다양한 윈도우 환경에서 사용하기에 pywinauto가 좀 더 범용적으로 활용될 수 있을 것이라 생각하여 pywinauto를 채용하였고 여기에 그 원리와 사용법을 정리한다. 모듈 사용 방법 pywinauto를 사용하는 방법은 아래에서 보듯 간단하다. 조작하고자 하는 프로그램을 실행시키거나 연결한다. 실행되거나 연결된 ..
Python Spyder 사용 중 multiprocessing 관련해서 여러 문제가 생겨 정보를 찾아보던 중 "Multiprocessing in Python on Windows and Jupyter/Ipython — Making it work"라는 흥미로운 글을 발견해 참고하여 포스팅한다. Windows 환경은 UNIX, Linux와 다르게 fork(부모프로세스가 자식프로세스를 생성하는 기능)를 지원하지 않는다. 이는 부모프로세스와 자식프로세스의 구분이 되지 않는다는 의미이며 이에 따라 windows 환경에서 python multiprocessing을 사용할 때 몇몇 제약이 생기게 된다. 간단한 예로 if __name__=='__main__' 구문이 없을 때 Linux에서는 스크립트가 정상작동하지만 윈도..
먼저 이 포스트는 아래 블로그를 기반으로 작성되었다. http://blog.naver.com/tmddn3020/221851801072 R로 금융데이터 수집하기6 - (WICS 기준 섹터 정보) 5번 글에서는 우선주와 스펙주를 제외한 국내 종목들의 종목명 및 티커 데이터를 저장했습니다.이 티커데이... blog.naver.com 주식 DB를 구축하기 위해 가장 먼저 기업의 리스트를 DB화 해야한다. 모든 상장 기업을 반영하는 것은 물론 좋겠지만 데이터 공백이 존재할 수 있다는 점을 염려해서 WICS 중분류로 나뉘어진 기업의 리스트만을 DB화하기로 결정하였다. WICS에 대해 자세히 알고 싶은 사람은 내가 전에 올렸던 글을 참고바란다. 2020/07/16 - [퀀트/이론] - WICS FICS GICS KR..
증권사 api는 32bit만을 지원하기 때문에 MySQL DB 인터페이스 모듈도 32bit로 설치해야 한다. 파이썬 DB 인터페이스 모듈은 여러가지가 있는데 그 중 가장 유명한 것은 mysqlclient와 pymysql이다. 두 개 다 프로젝트 관리자가 같으며 pymysql은 mysqlclient를 python으로만 구현한 모듈이기 때문에 프로젝트 관리자 역시 호환성등의 특별한 이유가 없으면 mysqlclient를 쓰라고 권고한다. 실제 anaconda를 사용하면 설치도 간편하다. (base) C:\Users\ksme0>conda install mysqlclient cs 64bit에서는 위와 같이 설치가 간단하다. 그러나 32bit에서는 다음과 같은 오류가 발생한다. (py37_32) C:\Users\k..
얼마 전 시간외 단일거래에서 상한가를 치거나, 장 시작 전 말도안되게 호재가 터진 기업의 주식들을 장전 시간외 거래로 매수 후 장이 시작했을 때 높은 가격에 팔면 좋을 것 같단 생각을 하게 되었다. 장전 시간외 거래의 경우 주문 체결 방식이 선착순 방식이다. 당연히 가격으로 체결 순위를 정할 수 없으니 시간으로 정할 수 밖에 없다. 손으로 하는 건 속도에 한계가 있으니 컴퓨터를 이용해 가장 빠른 시간에 주문을 넣어보자 생각했다. 예전에 작성했던 글을 참고하여 만들었다. 2020/05/09 - [파이썬/이론] - [Python] 수강신청, 티케팅, 서버 신호, 가장 정확한 시간에 신호보내기 [Python] 수강신청, 티케팅, 서버 신호, 가장 정확한 시간에 신호보내기 한정되어있는 재화를 판매할 때 사용하는..