본문 바로가기

전체 글

(39)
[Pandas] 데이터프레임 제목(Caption) 꾸미기 판다스의 Styler Object를 이용하면 아래와 같이 데이터프레임에 Caption 형태로 제목 및 설명을 추가헌 후 내가 원하는 방식으로 꾸며줄 수 있다. 여기에서는 세부적으로 아래 3가지 기능이 추가되어 있다. 1) Multiline으로 내용 추가하기 2) 내용 색을 회색으로 바꾸기 3) 내용의 정렬을 왼쪽으로 하기 코드는 다음과 같다. ## 먼저 캡션 달기 : f-string으로 변수를 넣어주고, 태그 포함으로 줄을 바꿔주기 mycaption = f"\ {mydate_str}({weekdays[mydate.weekday()]}) 옵션현황 \ - 코스피 / 코스피200 : {kospi} / {kospi200} \ - 유력 행사구간 : {put_value} ~ {call_value} \ - 다음 만기..
[Pandas] 특정 조건을 만족하는 행 서식 변경 Pandas에서는 Styler Object가 있다. 기존의 dataframe을 기반으로 만들어진 HTML Table인데, Caption을 달거나 cell 색을 변경하는 등 각종 꾸미기가 가능하다. 구체적인 내용은 아래 링크를 참고하면된다 (https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html) 아래 처럼 특정 조건을 만족하는 행에 대해서, 열의 일부에 대한 서식만 바꾸는 것은 아래 코드를 이용해서 가능하다. # 조건 1) 데이터 중 콜행사가가 현재 코스피200 지수와의 차이가 가장 작은 행을 선택 highlight_c = lambda x : ['color:red' if abs(x['콜_행사가'] - kospi200) == abs(newdf..
파이썬 - 매월 둘째주 목요일 구하기 (옵션만기일, 수능) 파이썬으로 매주 n번째의 x요일을 구해야 하는 경우가 있다. 한국거래소 옵션만기일은 매월 2번째주 목요일이다. 수능의 경우 11월 둘째주 목요일이다. 매월 옵션만기일 및 수능의 날짜를 구하는 방법은 아래와 같다. from datetime import datetime # 월요일은 is 0, 목용일은 is 3 # helper 함수 추가 def nth_weekday(the_date, nth_week, week_day): temp = the_date.replace(day=1) adj = (week_day - temp.weekday()) % 7 temp += timedelta(days=adj) temp += timedelta(weeks=nth_week-1) return temp # test = nth_weekda..
파이썬 - 오늘이 개장일일 때만 실행 금융/증권 관련 크롤링을 할 때는 오늘이 개장일인지 아닌지 판단해서, 개장일인 경우에만 함수를 실행해야 하는 경우가 있다. exchange_calendars 라는 라이브러리를 이용하면 아래와 같이 간단하게 코드를 작성할 수 있다. import exchange_calendars as ecals from datetime import datetime, timedelta def main(): XKRX = ecals.get_calendar("XKRX") # 한국 코드 if not (XKRX.is_session(datetime.now().strftime("%Y-%m-%d"))): return # 오늘 장이 아니면 종료하기 run_myjob() if __name__ == "__main__": main()
[Github Actions] 파이썬(판다스) 한글깨짐 해결하기 Github Actions으로 1) 판다스 데이터프레임을 이미지로 저장해서 2) 그 이미지파일을 텔레그램 봇으로 전송하는 코드를 작성했는데, 아래와 같이 한글 깨짐 문제가 발생하였다. Github Actions으로 한글을 다룰 때 깨지는 이유는, Github Actions에서 기본적으로 돌아가는 ubuntu에 한글 폰트가 설치되어 있지 않기 때문이다. workflow.yml파일에 아래와 같이 나눔폰트를 설치하는 코드를 추가해주면 문제가 해결된다. jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: [3.9] steps: - name: Setfont run: | sudo apt-get install fo..
[파이썬] Code Refactoring 팁 : 예외 case를 앞에서 제시 파이썬에서 IF 문은 정말 자주 등장한다. IF 문 안에 If 문이 들어와서, 아래와 같이 들여쓰기 (indentation) 이 여러번 있는 경우도 많다. 아래는 if가 두번이나 있는 경우다. def myjob(): if (myfield == 'grid-insta'): i.click() time.sleep(3) print(len(driver.window_handles)) if len(driver.window_handles) != 1: driver.switch_to.window(driver.window_handles[-1]) time.sleep(4) IF 문이 많아서 들여쓰기가 많으면 내가 집중해야 하는 들여쓰기 단계가 어디인지 놓치기 쉽다. 그래서 이런 IF문에서 들여쓰기를 최소화할 수 있는 방법이 있는..
신재생에너지 공급인증서(REC) 대시보드 (feat. RPS 제도) DEMO 및 주요 기능 https://hanalia.github.io/react_rec_hosting/ 1. 주 2회(매주 수요일, 금요일) 최신 REC 가격 자동 업데이트 2. Recharts 라이브러리를 사용하여 최근 가격 동향에 대한 그래프 시각화 3. React-Table 라이브러리를 활용한 테이블 구현 (Sorting, Pagination 기능 포함) 4. 데이터 CSV 내보내기 기능 추가 신재생에너지 공급인증서(REC, Renewable Energy Certificates)는 정부가 신재생에너지 발전사업자에 발급해주는 증명서류 한국의 현행 신재생에너지 정책에 의하면, 발전설비규모 500MW 이상인 발전사업자는 총 발전량의 일정 비율 이상을 신재생에너지원으로 발전해야 하는 의무가 있음. (= 신..
윈도우 유저를 위한 최고의 캡쳐도구 - ShareX 블로그 포스팅을 하다보면 캡쳐하고, 표시용 상자나 텍스트 삽입 등 편집을 하고, 클립보드에 복사하는 작업을 자주 하게 된다. 그리고 한 장의 이미지로는 표현이 아쉬운 경우 움짤 (GIF) 이미지가 필요한 경우도 많다. 윈도우 10에 기본적으로 내장된 캡쳐도구도 훌륭하지만 다음 2가지 면에서 항상 아쉬웠다. 1) 캡처 후 텍스트 추가나 박스 삽입 등 아주 간단한 편집을 위해서라도 그림판 같은 제3 프로그램을 활용해야 한다. 2) 움짤 캡처는 불가능하다. 이 두가지 문제를 완벽하게 해결해준 도구가 있는데, ShareX라는 오픈소스 프로그램이다. 완전 무료다. https://getsharex.com/ ShareX의 유용한 기능들 아래 예시는 주요 기능인 1) 캡쳐 후 텍스트 입력 및 글장사 바로 삽입 및 2)..