본문 바로가기
728x90

프로그래밍/Python6

[Python] 일별 timestamp 만들기 시계열 데이터의 index를 날짜로 설정하고 싶을 때, 데이터 포인트가 n개 있으면 날짜도 n개가 필요합니다. 이때 n개의 날짜를 쉽게 만들 수 있는 함수 'rrule'을 소개드리겠습니다. rrule rrule은 dateutil에 포함된 함수로, 파이썬에 기본으로 설치돼있습니다. 간단하게 rrule 사용 코드를 보면, 아래와 같습니다. from datetime import datetime, timedelta from dateutil.rrule import rrule, DAILY list(rrule(DAILY, dtstart=datetime.now() - timedelta(days=100), until=datetime.now())) 'dtstart' 날짜부터 'until' 날짜까지 1일 주기(DAILY) .. 2024. 2. 15.
[Python] Pandas보다 빠른 Polars 일봉, 1시간봉 정도의 큰 timeframe을 다룰 땐 데이터 사이즈가 그렇게 크지 않습니다. 한 종목의 일봉은 10년동안 2500개만 생길테니까요. 이정도 데이터면 pandas도 충분합니다. 하지만, 수천 종목의 1분봉/틱 데이터를 pandas로 다루긴 힘듭니다. 이에 대한 해결책으로 polars라는 패키지가 있습니다.(polars 설명: https://medium.com/cuenex/pandas-2-0-vs-polars-the-ultimate-battle-a378eb75d6d1) 위 설명을 한 장의 그림으로 요약하면, 아래와 같습니다. 모든 면에서 Polars가 Pandas보다 빠르죠. 때문에, 저는 원래 pandas로 하던 작업을 모두 polars로 갈아타고 있습니다. 속도가 빠른 이유는, rust.. 2023. 7. 8.
[Python] 백그라운드에서 파이썬 코드 실행하기 트레이딩 알고리즘, 혹은 자동 메일링 기능과 같이 멈춤 없이 24시간 실행해야 하는 코드를 만들어 보셨나요? 아마 프로그램 매매를 하시려는 분들은 한번쯤은 시도해보셨을 겁니다ㅎㅎ 그냥 주피터에서 파이썬 코드를 실행시켜두면 되는거 아닌가요? 그렇다면 지금 실행중인 주피터를 종료하자마자 프로그램이 죽어버린다는 큰 문제를 마주하실 겁니다. 유튜브르 보다가 실수로 같은 탭에 켜져있는 주피터를 종료하게 된다면 너무 슬픈 일이겠죠... 그렇기 때문에, 오늘은 nohup을 사용해, 주피터를 꺼도 백그라운드에서 파이썬 코드가 계속 돌아가도록 만들어 보겠습니다. 아, 참고로 nohup은 리눅스 환경에서 지원됩니다. 1. 파이썬 파일 준비 파이썬 코드를 백그라운드에서 돌리려면 가장 중요한게 뭘까요? 네 그렇습니다. 파이썬.. 2021. 8. 29.
[Python]파이썬으로 네이버 메일 보내기 오늘은 파이썬으로 메일 보내는 방법을 알아보겠습니다. 기본 파이썬 패키지를 사용하기 때문에, 엄청나게 간단합니다. 이메일 보내는 기능은 뭔가 서버랑 통신해야할 것 같고~ 꾸미기도 어려울 것 같고~ (꾸미기는 어려운 것 같습니다. 제가 미술 실력이 부족해서) 하는 느낌적인 느낌이 들지만, 이렇게 쉬운거였어? 생각이 들 정도로 금방 끝나니, 잘 따라해보세요. 참고로, 이미지 첨부나 html 다루기 등은 다음에 따로 다루고, 이 포스트에선 딱 메일을 어떻게 보내요? 라는 질문에 대한 대답만 하겠습니다. 1. 먼저, 필요한 패키지를 import합니다. import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import .. 2021. 8. 23.
[Python] 파이썬으로 웹페이지 크롤링하기 이번엔 파이썬의 requests와 beautifulsoup4 패키지를 활용해 웹페이지의 html을 불러와봅시다. requests 패키지는 웹페이지와 파이썬을 연결해주는 역할을 하고, beautifulsoup4는 requests가 불러온 html을 손쉽게 수정/보완 가능하도록 만들어주는 패키지입니다. 구글 홈페이지 크롤링하기 먼저, pip으로 두 패키지를 설치해줍니다. pip install requests beautifulsoup4 이제 파이썬을 실행시킨 후, 두 패키지를 import해옵니다. import requests from bs4 import BeautifulSoup as bs 구글의 홈페이지를 불러와, 그 페이지에 있는 내용들을 정리해봅시다. requests로 구글 페이지를 긁어온 다음, beau.. 2021. 8. 15.
[Python] YYYYMMDD 형태의 데이터를 날짜 데이터로 변환시키기 from datetime import datetime date = '20190521' newDate = datetime.strptime(date,'%Y%m%d') 위 코드로 string 혹은 int 형식의 변수를 날짜 변수로 변환 가능합니다. 이렇게 변환시켜야 해당 값을 matplotlib의 X축으로 설정할 때 날짜로 인식할 수 있습니다. string 형식 역시 matplotlib에서 날짜처럼 보이긴 하지만, 위 코드처럼 strptime을 써야만 matplotlib가 이를 날짜 데이터로 인식해, 일정 기간마다 한 개의 index만 선택해 표시함으로(ex: 8월1일, 9월1일, 10월1일 .....) 가시성을 높일 수 있습니다. 2021. 8. 10.
728x90