본문 바로가기

Code Snippets

(17)
[Apps Script] 특정 폴더의 이미지파일의 file-id 를 한번에 구하기 구글드라이브 폴더의 이미지파일들을 스프레드시트에 일괄로 표현하고 싶을 때, 우선 아래 코드를 이용해서 각 파일의 공유 가능한 링크를 구할 수 있다. function myFunction() { var folderId = "my_folder_id"; var files = DriveApp.getFolderById(folderId).getFiles(); var result = []; while (files.hasNext()) { var file = files.next(); file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); var temp = { file_name: file.getName(), url: "http://drive..
데이터프레임을 이미지 파일로 저장 데이터프레임을 누구와 공유하고 싶을 때는 이미지 파일로 저장해서 공유하는 것이 제일 효과적이다. 이미지 파일 저장은 dataframe_image라는 외부 라이브러리 이용하면 간편하게 할 수 이싿. (https://github.com/dexplo/dataframe_image) ## 먼저 pip install dataframe_image import dataframe_image as dfi df1.export(mydf_styled, 'df_styled.png')
[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..
파이썬 - 오늘이 개장일일 때만 실행 금융/증권 관련 크롤링을 할 때는 오늘이 개장일인지 아닌지 판단해서, 개장일인 경우에만 함수를 실행해야 하는 경우가 있다. 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문에서 들여쓰기를 최소화할 수 있는 방법이 있는..
[파이썬 크롤링] 크롤링 코드 작성 시간을 두배로 단축시키는 2가지 팁 크롤링 할 때 가장 많은 시간이 소요되는 부분은 크롬 탭을 통해 url, xml http request를 분석하는 것이다. 크롬 탭을 열어서, 화면 새로고침을 하면서 현재 클라이언트가 어떻게 서버로 요청을 보내고 있는지 살펴보고, header 및 data 정보를 가져와서 코드를 작성하는 것이 꽤나 번거롭다. 아래 3가지 팁으로 이 과정을 매우 효율적으로 수행할 수 있다. 1) F5가 아니라 Reply XHR 활용 빠르게 F12로 개발자 도구에 들어가서, 크롤링하고자 하는 XHR를 확인하기 위해 F5(새로고침)을 연타할 필요가 더이상 없다. 이미 로딩이 되어 있는 XHR이 있으면, Reply XHR를 활용하기 2) CURL to Python requests Converter 이용하기 크롤링하고 하는 XHR..