가져오기23 KOSPI 와 환율 비교(With python) 지난번에 환율과 KOSPI를 비교하는 코드를 포스트에 적은 적이 있다. 2022.09.29 - [취미로 하는 파이썬/투자 실험실 with 파이썬] - 퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관한 내 생각 퀀트투자 - 환율데이터 DB에 저장하기, KOSPI와 상관관계 확인해 보기 그리고 사기꾼과 욕심에 관 환율데이터를 받아서 DB에 저장했다. pykrx 모듈처럼 자동으로 불러 오는 방법을 찾아 봤지만, 엑셀로 받아서 DB에 저장했다. 매번 Data를 업데이트 할 필요도 없고, 한번 DB에 저장하면 그걸로 백테 dotsnlines.tistory.com 그 때는 환율을 크롤링하지 못해서 데이터를 DB에 저장하고 그래프를 그렸다. 매번 데이터를 가져오기.. 2022. 11. 9. 퀀트투자 - DB에서 날짜 가져와서 PBR x DPS 조건으로 종목 고르기(SQL 특정 조건 가져오기) 여태까지 투자 실험을 한 내용을 요약해 보겠다. PBR x DPS를 기준으로 20 종목을 선정한 뒤 월별로 수익률을 분석했다.(물론 그 전에 여러 조건으로 수익률을 분석한 적이 있지만, 이런 세부적인 부분은 설명이 길어지니 생략하겠다.) pykrx 라이브러리를 사용해서 데이터를 가져오고, 백테스트를 하다보니 KRX 홈페이지에 차단되는 일이 발생했다. 그래서 데이터를 일일이 받아서 DB에 저장했다. 그리고 다시 백테스를 해 보려고 한다. df = pd.read_sql("SELECT * FROM ...", con) 로 전체 데이터를 다 가져오니 시간이 생각보다 오래걸렸다. sqlite3를 처음 사용해보고 SQL 사용법을 모르니 생각보다 쉽지 않았다. 그래도 내 친구 Google이 쉽게 방법을 알려주어서 이번.. 2022. 10. 1. 파이썬 마법의 공식 - 5. PER 가져오기 2022.06.28 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 조엘 그린블란트의 마법의 공식을 구현하기 위해서는 우선 주식시장에 상장된 전체 종목을 가져와야 합니다. 여러가지 방법이 있겠지만, 저는 KRX에서 전체 종목을 가져오도록 하겠습니다. 다행 dotsnlines.tistory.com 지난 포스트에는 pykrx 라이브러리를 사용해서 상장된 모든 종목을 가져왔습니다. 이번 포스트는 per을 가져와서 정리해 보도록 하겠습니다. 전체 종목 리스트는 pykrx 모듈을 이용해서 가져왔습니다. PER도 pykrx를 사용해서 가져오겠습니다. 가져온 데이터를 테이블 형식으로 만들기.. 2022. 7. 13. 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 조엘 그린블란트의 마법의 공식을 구현하기 위해서는 우선 주식시장에 상장된 전체 종목을 가져와야 합니다. 여러가지 방법이 있겠지만, 저는 KRX에서 전체 종목을 가져오도록 하겠습니다. 다행히 어느 능력자께서 'pykrx'라는 라이브러리를 만드셔서 상장된 전체 주식종목을 아주 쉽게 가져올 수 있습니다. 혹시나 모르시는 분들이 계실수도 있어서 기초적인 사항 하나만 먼저 말씀드리겠습니다. 파이참을 열어보시면 왼쪽에 위의 그림과 같이 탐색창이 나옵니다. 마우스 오른쪽 버튼을 클릭하면 메뉴창이 나오는데, "New > Directory"를 선택하면 폴더를 생성할 수 있고, "New > Python File"을 선택하면 우리가 코딩하는 창을 만들 수 있습니다. 폴더이름과 파일이름은 아무거나 만드셔도 상관 없습니다. 이.. 2022. 6. 28. 파이썬 마법의 공식 - 3. 모듈(라이브러리) 설치하기 지난 포스트에서도 설명을 드린것 처럼, 파이썬은 비교적 쉽습니다. (그러니 저같이 비전공, 비전문분야, 40대 컴맹아저씨가 파이썬 포스트를 쓰고 있습니다.) 왜 쉬우냐면 이미 다른사람이 만든 코드를 가져다 쓰기 쉬운 구조이기 때문입니다. 예를들어 마우스를 자동으로 제어하는 프로그램을 하나 만든다고 생각해 볼까요? 아마 모르긴 몰라도 다른 언어를 사용해서 만든다면, 1,000줄 이상 아주 어렵게 코딩을 해야 될 것 같은 기분이 드네요. 하지만, 남이 만든 모듈을 가져와서 사용한다면 5줄도 안되는 코드로 마우스를 제어할 수 있습니다. 이번 포스트는 이런 남이 만든 코드인 모듈(module)을 가져와서 사용하는 방법에 대해 알려드리겠습니다. ※ 모듈과 라이브러리는 같은 의미로 사용하겠습니다. 저도 독학으로 배.. 2022. 6. 23. python pandas - 판다스 기본(특정 문자(숫자) 제외한 데이터만 가져오기 ) 판다스 데이터프레임에서 특정 문자/숫자를 제외한 데이터만 가져와야 할때가 있습니다. sort를 해야 하거나, 컬럼간에 계산을 해야 할때 문자가 나오면 에러가 나옵니다. N/A나 Null 데이타는 dropna(), 또는 dorpnull() 함수를 사용하면 되는데, 특정 문자나 숫자는 다른 방법으로 제외하고 데이터프레임을 가져올 수 있습니다. df = df[df['col'] != 0] 이런식으로 사용하면 됩니다. 생각해보면 간단한데, 막상 코딩을 하다보면 어떻게 해야할지 모를 경우가 많더라구요. 2021. 5. 31. (업데이트) 파이썬으로 마법의 공식 구현하기 4 - 전체 코드 (파이썬 코드파일 공유) 지난 포스트까지 전체 종목코드와 PER을 가져오고, 에프엔가이드 사이트에서 ROA를 크롤링해서 데이터프레임을 만들고 마법의 공식을 구현하는 코드를 작성해 보았습니다.이전 포스트는 아래링크를 클릭하세요 ↓2021.05.26 - [취미로 하는 파이썬/Python Project] - 파이썬으로 마법의 공식 구현하기 1 - 종목 데이터, PER 가져오기 파이썬으로 마법의 공식 구현하기 1 - 종목 데이터, PER 가져오기조엘그린블란트의 마법의 공식은 상당히 유명합니다. PER과 ROA를 이용해서 종목을 골라내는 방법이죠.(엄밀히 말하면 실제 마법의 공식과 약간 다릅니다.) 우리나라에서는 맞지 않다고 하시는 dotsnlines.tistory.com2021.05.27 - [취미로 하는 파이썬/Python Proje.. 2021. 5. 29. 파이썬으로 마법의 공식 구현하기 2 - ROA, ROE 가져오기 지난번 포스트에 이어서 이번에는 ROA를 웹에서 가져오는 방법을 기록하겠습니다. 지난번 포스트는 아래 링크를 참고하세요 ↓ 2021.05.26 - [파이썬/Python Project] - 파이썬으로 마법의 공식 구현하기 1 - 종목 데이터, PER 가져오기 requests 모듈을 이용해서 에프엔가이드에서 제공하는 ROA를 가져오겠습니다. code 명과 가져올 시점(해당 분기 또는 사업보고시점)을 파라미터로 넣어주면 ROA를 가져오는 과정입니다. ROA를 가져오는 김에 ROE도 함께 불러오도록 하겠습니다. url = 'https://comp.fnguide.com/SVO2/ASP/SVD_FinanceRatio.asp?pGB=1&gicode=' + code + \ '&cID=&MenuYn=Y&ReportGB=.. 2021. 5. 27. 파이썬을 이용하여 10년치 재무제표 가져오기 - 5. 재무비율 추가하기 2021.05.16 - [분류 전체보기] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 4. 코드 개선하기 파이썬을 이용하여 10년치 재무제표 가져오기 - 4. 코드 개선하기 지난번 포스트까지 DART(전자공시)에서 10년치 제무재표 데이터를 가져오는 파이썬 코드를 작성했습니다. 2021.05.15 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 3. 손익계 dotsnlines.tistory.com 지난번 포스트에서는 재무제표를 좀 개선하는 내용을 다루었습니다. 이번 포스트는 가져온 재무제표 데이터를 이용해서 재무비율을 추가해 보도록 하겠습니다. 재무비율 추이를 보면, 해당 기업의 상황을 이해하는데 도움이 됩니다. 완전 코딩과 관련이 없는 사람이 이런걸 .. 2021. 5. 17. 파이썬을 이용하여 10년치 재무제표 가져오기 - 4. 코드 개선하기 지난번 포스트까지 DART(전자공시)에서 10년치 제무재표 데이터를 가져오는 파이썬 코드를 작성했습니다. 2021.05.15 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 3. 손익계산서, 현금흐름표 가져오기 파이썬을 이용하여 10년치 재무제표 가져오기 - 3. 손익계산서, 현금흐름표 가져오기 지난 포스트에 이어서 손익계산서와 현금흐름까지 10년치 데이터를 가져와 보도록 하겠습니다. 2021.05.14 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 2. 재무상태표 가 dotsnlines.tistory.com 그런데, 문제가 생겼습니다. DART에서 받은 데이터가 회사별로 양식이 다 다르네요... 삼성전자로 코드를.. 2021. 5. 16. 파이썬을 이용하여 10년치 재무제표 가져오기 - 2. 재무상태표 가져오기 지난 포스트에서 DART(전자공시시스템)의 API를 통해 10년치 재무제표 데이터를 가지고 왔습니다. 2021.05.13 - [파이썬/Python Project] - 파이썬을 이용하여 10년치 재무제표 가져오기 - 1. Dart(전자공시)에서 10년 재무제표 데이터 가져오기 파이썬을 이용하여 10년치 재무제표 가져오기 - 1. Dart(전자공시)에서 10년 재무제표 데이터 가져 주식투자를 하다보면 재무제표를 확인해야 하는 경우가 있습니다. 증권사에서 제공하는 데이터도 유용하지만, 좀 더 깊이있게 기업을 분석하기 위해서는 10년 정도의 데이터를 확인하는 것이 dotsnlines.tistory.com 가져온 데이터는 항목이 너무 많아서 분석이 어렵습니다. 분석을 할 수 있도록 필요한 항목만 빼내서 보기좋게 .. 2021. 5. 14. 파이썬을 이용하여 10년치 재무제표 가져오기 - 1. Dart(전자공시)에서 10년 재무제표 데이터 가져오기 주식투자를 하다보면 재무제표를 확인해야 하는 경우가 있습니다. 증권사에서 제공하는 데이터도 유용하지만, 좀 더 깊이있게 기업을 분석하기 위해서는 10년 정도의 데이터를 확인하는 것이 좋은것 같습니다. 유료로 제공하는 사이트도 있다고 하는데, 제가 워낙 돈 쓰는걸 싫어하는 성격이라 파이썬으로 만들어 보려구 합니다. 마침 Dart에서 API를 제공해 준다는 사실을 알았습니다. 그리고 'dart_fss'라는 모듈을 누가 친절히 만들어 주셨네요. 요롷게 이용하시면 됩니다. 아래 사이트를 참고하시면 좀 더 많은 정보를 찾을 수 있습니다. pypi.org/project/dart-fss/ dart-fss Web-scraping http://dart.fss.or.kr pypi.org 다음 포스트부터는 DART(전자공시.. 2021. 5. 13. python openpyxl - 파일을 열어서 데이터 입력, 가져오기 이번 포스트는 만들어진 엑셀 파일의 데이터를 가져오고, 입력하는 방법에 대하여 알아 보도록 하겠습니다. from openpyxl import load_workbook 모듈을 가져옵니다. wb = load_workbook('cell.xlsx') ws = wb.active 가져올 파일을 wb 변수에 담고, 활성화 된 시트를 ws 변수에 담습니다. for x in range(1,11): for y in range(1,11): print(ws.cell(column=x, row=y).value, end=" ") print() for 문을 써서 column 과 row를 1부터 10까지의 좌표에 값을 가져옵니다. 결과값은 위와 같습니다. 셀의 개수(행과 열의 개수)를 모를때는 아래와 같이 작성하면 됩니다. for x.. 2021. 3. 23. openpyxl - 여러 엑셀파일 데이터 가져오기 여러개의 엑셀파일에 있는 데이터를 하나의 엑셀파일로 가져와 보겠습니다. 'Test'라는 이름의 폴더를 만든다음 임의로 엑셀파일을 3개 만들어 보겠습니다. 'Test' 폴더 안에는 각각의 파일에 아래 그림과 같이 글자를 임의로 입력 하였습니다. 전체 코드는 본 포스트의 맨 아래에 있으니 참고하시기 바랍니다. 여러개의 엑셀파일의 데이터를 가져오기 위해서는 총 3개의 모듈이 필요합니다. 'os' 모듈은 정해진 경로의 폴더내에 있는 엑셀파일의 이름을 가져오기 위해 필요하며, openpyxl 패키지의 'Workbook' 과 'load_workbook'은 각각 엑셀파일 생성과 폴더내의 엑셀파일을 열기위해 필요합니다. 폴더의 경로는 'path'라는 변수에 입력합니다. 각 파일의 Worksheet를 'ws'라는 변수에.. 2020. 12. 31. 파이썬 - 크롤링 쉽게 시작하기 인터넷에는 많은 정보들이 있습니다. 하지만, 모든 정보들을 가져다가 쓰기에는 어려움이 많습니다. 이럴 때 쓰는 방법이 '크롤링' 입니다. '스크래핑'이라고도 하며, 의미가 다소 다르나 요즘에는 혼용해서 쓴다고 합니다. 구글이나 네이버에서 검색하는 방법이 이런 '크롤링 봇'을 이용합니다. 좋아하는 연예인 사진을 검색해서 다운 받는다고 할 때 일일이 다운 받으려면 많은 시간이 걸립니다. 하지만 파이썬을 이용하여 크롤링을 한다면, 단 몇 초만에 수천장의 사진을 다운받을 수 있습니다. 이번 포스트는 크롤링 시작하는 방법에 대해서 설명하겠습니다. import requests from bs4 import BeautifulSoup 크롤링을 하기 위해서는 'requests' 모듈과 'bs4'의 'BeautifulSou.. 2020. 12. 24. openpyxl - 엑셀파일의 데이터 가져오기 이번 포스트는 openpyxl 모듈을 사용하여 이미 만들어진 엑셀파일의 데이터를 가져오도록 하겠습니다. 제가 엑셀은 VBA가 익숙하다 보니깐 python으로 엑셀을 다루려고 하다보니 많이 헷갈리네요.. 우선 필요한 모듈을 불러옵니다. 'openpyxl' 중에서 엑셀파일을 불러 오기 위해서는 'load_workbook' 모듈이 필요합니다. 엑셀파일의 경로를 지정해주고 'wb'라는 변수에 입력합니다. 그리고 엑셀파일에서 활성화 된 시트를 'ws'라는 변수에 입력합니다. 엑셀시트에 임의로 글자를 입력해서 저장합니다. 이 글자를 파이썬으로 불러오도록 하겠습니다. '시트['셀위치']].value' 형식으로 쓰면 해당셀의 값이 불러와집니다. 셀 값을 불러오는 다른 방법도 있습니다. '시트.cell(row=행번호, .. 2020. 12. 19. PyQt5 - (Qt designer) QFileDialog 를 이용하여 여러파일 이름 출력 Qt designer와 QFileDialog를 이용하여 여러 파일의 이름을 출력해 보겠습니다. 우선 Qt designer에서 아래와 같이 Dialog와 버튼, textEdit을 만듭니다. (lineEdit이 아니라 textEdit을 사용하였으니 유의하시기 바랍니다.) import sys from PyQt5.QtWidgets import * from PyQt5 import uic 필요한 모듈을 불러옵니다. test_ui = r'C:\Users\Administrator\Desktop\Test.ui' 만들어진 UI 파일의 경로를 'test_ui'라는 변수에 넣습니다. class MainDialog(QDialog): def __init__(self): QDialog.__init__(self, None) uic... 2020. 12. 17. 엑셀 VBA(매크로) - 여러 파일 이름 (경로) 자동으로 가져오기 업무를 하다보면 여러 파일 이름들을 일일이 타이핑 하거나, 복사/붙여넣기 해야 할 때가 있습니다. 이때 VBA를 사용하면 간단하게 원하는 파일의 모든 이름 또는 경로를 가져올 수 있습니다. 엑셀파일을 열고 상단의 메뉴 중 '개발도구' >> Visual Basic' 으로 들어갑니다. 'Microsoft Visual Basic for Applications' 창에서 상단의 '삽입' 메뉴를 눌러 '모듈'을 추가합니다. 모듈 창을 열어서 코드를 입력합니다. 전체 코드는 아래와 같습니다. ↓Sub sbOpen_Filename() Dim lngCount As Long, lngI As Long Dim varArray As Variant, varArray2() As Variant Dim strPath As String.. 2020. 12. 5. PDF - 다른파일에서 주석 가져오기(주석 합치기) 회사에서는 협업을 많이 합니다. 동일한 파일에 각자 검토를 하고 검토의견(주석)을 합쳐야 하는 경우가 있습니다. 수작업으로 하면 시간도 오래 걸리고 정확성도 떨어집니다. 이를 간단히 자동으로 하는 방법을 포스트 하겠습니다. 취합할 파일을 "원본"이라고 만들고 "주석1", "주석2" 파일에 있는 주석을 "원본"파일로 가져오도록 하겠습니다. 위 그림과 같이 원본은 아무런 주석 없습니다. 주석1 파일에는 "주석1"이라는 주석을 달고 클라우드 마크를 달겠습니다. "주석2" 파일에는 다른 위치에 "주석2"라는 주석을 작성했습니다. 각 "주석1"과 "주석2"파일의 오른쪽에 "주석목록"으로 마우스를 가져갑니다. 위의 그림과 같이 오른쪽 "옵션" 버튼을 눌러서 "모두 데이터 파일로 내보내기..."를 누릅니다. 주석이 .. 2020. 12. 3. PDF 합치기(PDF 삽입) 방법 Adobe Acrobat X Pro를 사용해서 PDF를 합치는(PDF 삽입) 방법입니다. 위 그림과 같이 합칠 PDF 파일(1, 2, 3)과 원본 PDF 파일이 있습니다. 원본 파일을 열어서 "페이지 축소판"을 클릭합니다. 마우스 오른쪽을 클릭해서 "페이지 삽입(N)" >> "파일에서(F)..." 를 클릭합니다. 합치려고 하는 PDF파일을 마우스 드래그 해서 선택한 다음 오른쪽 아래의 "선택" 버튼을 누릅니다. "페이지 삽입" 창이 나타나면, 현재파일 "이후" 또는 "이전"에 삽입할지 선택합니다. 그리고 아래의 "확인" 버튼을 누릅니다. 위의 그림과 같이 선택한 파일의 PDF가 삽입 된 것을 확인할 수 있습니다. 순서는 거꾸로 되었네요. 2020. 12. 1. 이전 1 2 다음