분류 전체보기
-
[pip] pip search error: xmlrpc.client.Fault: <Fault -32500: 'RuntimeError>Python 2020. 12. 17. 18:18
pip search 커맨드가 PyPI 서버에 과부하를 줘서 현재 비활성화 상태. 지금은 트래픽 주범인 악성 IP의 소유자 및 거기 사용된 툴 관리자와 접촉 중이라고 한다. 파이썬 홈페이지 하단에서 연결되는 Status 페이지에서 현황을 확인할 수 있다. status.python.org/ Python Infrastructure Status status.python.org pip으로 텔레그램 패키지를 설치하려고 아래 명령어를 실행했는데 pip search python-telegram-bot 이런 에러가 뜬다. ERROR: Exception: Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/pip/_internal/..
-
[import] 폴더 안의 스크립트 임포트하기Python 2020. 12. 16. 21:43
일반적으로 폴더에 코드를 정리해놓고 불러다 쓰려면 from folder import script를 하면 된다. 폴더가 여러 개 있거나, 여러 파일에서 코드를 임포트하려면 디렉토리 사이를 .으로 연결하면 된다. 폴더 구조가 아래와 같이 되어있을 때, main.py에서 f~의 파일들을 임포트하는 경우: 더보기 위의 폴더구조 생성할 때 사용한 코드 import os path = os.getcwd() for i in range(1,4): p1 = path + '/' + 'f' + str(i) os.mkdir(p1) for j in range(1,4): p2 = p1 + '/' + 'f' + str(j) os.mkdir(p2) for k in range(1,4): p3 = p2 + '/' + 'm' + str(k..
-
[python f'{formating}'] 봇 메시지 포맷팅Python/텔레그램봇:채권모니터링 2020. 12. 16. 16:00
pandas의 DataFrame에 저장된 데이터를 가져와서 f"{}" 방식으로 포맷팅한다. 봇으로 메시지를 보내려면 적당한 형식으로 포맷팅을 해야한다. 내 핸드폰에서는 한글 22자가 한 줄에 들어가는 맥시멈이어서, 아래와 같은 형식을 취하기로 했다. 파라다이스6 D-1042 A ₩10,043.0(3.302%) 10,043(3.302%) 9,900(3.831%) 이걸 위해서는 pandas dataframe 형태의 데이터를 string 형태로 바꿔주어야 한다. f"{변수}" 형태로 입력하면 변수를 손쉽게 문자열로 바꿀 수 있다. a = 98765.4321 print(f"{a}") # 98765.4321 특정 공간에 맞춰 정렬하는 것도 가능하다. print(f"{a:>20}") # 98765.4321 prin..
-
[Pandas] 데이터 정리 (2) 필터링(query) 및 정렬Python/텔레그램봇:채권모니터링 2020. 12. 15. 12:03
현재 데이터를 pandas dataframe에 넣고, NULL값 정리까지 끝난 상태. 이제 목적에 맞게 데이터를 필터링할 차례다. 목적: 투자등급 A-이상이면서 잔존기간이 3년 미만인, 매력적인 가격대의 채권 찾아내기. 매력적인 가격대는 1) 평균 금리에 비해 저렴하게 매도 매물이 있는 종목 2) 혹은 거래량이 있는 종목 중에 적당한 매수가격대가 없는 종목 으로 정했다. 일단 투자등급을 걸러야 하니 'BBB', 'BB', 'B'와 'BBB+', 'BB+', 'B+', 'BBB-', 'BB-', 'B-'를 버리고, 잔존기간이 1095일 이상인 종목을 버리고, 수익률이 평균 금리 미만인 종목을 버리고, 나의 채권 기대수익률은 2% 이상이기 때문에 매수수익률이 2% 미만으로 걸려있는 종목도 버린다. 다만 0...
-
[Pandas] 데이터 정리 (1) read_csv(na_values) & applyPython/텔레그램봇:채권모니터링 2020. 12. 15. 11:37
데이터를 csv 형태로 확보했으니, 이제 입맛대로 정렬해서 원하는 데이터만 골라낼 차례다. python의 pandas 라이브러리를 사용할 예정이고, 우선 데이터를 불러와서 NULL값을 처리하고 날짜 포맷을 변경한다. 일단 설치를 하고 # python -m pip install --upgrade pip # pip install pandas 데이터는 이렇게 생겼다. 가격, 수익률, 거래량, 거래대금은 '-'로 표시된 NULL 데이터가 있다. 종목명,가격,수익률,거래량,거래대금,매도최우선호가 가격,매도최우선호가 수익률,매수최우선호가 가격,매수최우선호가 수익률,신용등급,잔존기간,표준코드 HMM199CB,"10,856.0","0.000","42,122,597","44,815,973,553","10,840.0","..
-
[ECOS API] 한국은행 경제통계 API 이용 (2) jsonPython/텔레그램봇:채권모니터링 2020. 12. 14. 14:34
원래는 API 기본 값인 xml로 데이터를 처리하다가, 뒤늦게 json타입도 지원되는 걸 발견하고 환승하면서 코드를 class로 정리해서 모아두기로 했다. 주요 목적은 인증키와 STAT_CODE와 ITEM_CODE1, count 정보를 담은 객체를 만들어두고, 필요할 때마다 최근 데이터를 불러오는 함수 작성하기. 아래와 같은 모양이다. setting = { 'key': 'asdf' 'dataType': 'json', 'language': 'kr', } # 이쪽에 기본 정보를 정리해두고 corpBondAAm = Ecos(setting, STAT_CODE='060Y001', ITEM_CODE1='010300000', count=19) print(corpBondAAm.getLatest()) # {'202012..
-
[ECOS API] 한국은행 경제통계 API 이용 (1) xmlPython/텔레그램봇:채권모니터링 2020. 12. 10. 21:11
채권 금리를 어디서 가져올까 하다가, API가 잘 되어있는 한국은행 API를 이용하기로 했다. ecos.bok.or.kr/jsp/openapi/OpenApiController.jsp?t=main 한국은행 경제통계시스템 - OpenAPI 서비스 ecos.bok.or.kr 서비스 소개부터 개발 가이드, 예제코드까지 잘 나와있다. 서비스 이용 > 인증키 신청에 들어가서 약관에 동의하고, 이메일, 비밀번호, 이름, 전화번호, 목적을 기입하고 나면 금세 키가 발급된다. 이렇게 발급받은 키는 아래처럼 url 형태로 요청을 보내면 된다. http://ecos.bok.or.kr/api/StatisticSearch/인증키/xml/kr/1/2/060Y001/DD/20201208/20201209/010300000/ 내 경우..
-
[Node.js & MySQL] LEFT JOIN으로 가져온 데이터 출력생활코딩/WEBn 2020. 12. 9. 21:32
LEFT JOIN SELECT * FROM table1 LEFT JOIN table2 ON table1.key=table2.key 테이블에 같은 이름의 컬럼이 있는 경우, 테이블.컬럼 형태로 표시해주어야 ambiguity error가 나지 않는다. SELECT topic.id, title, author.name, author.description FROM topic LEFT JOIN author ON topic.author_id=author.id; +----+-----------+--------+-------------+ | id | title | name | description | +----+-----------+--------+-------------+ | 0 | Home | banana | fru..