최근 Google API를 사용할 때 하루 호출량 제한에 걸려서 곤란한 적이 있었습니다. 서비스 계정을 여러 개 만들어서 순차적으로 돌리면 되겠다! 싶었는데, 매번 계정을 바꾸는 코드가 너무 지저분해서 다른 방법이 없을까 찾아보다가 itertools.cycle()를 발견했습니다. 반복 가능한 객체를 무한히 순환할 수 있는 함수였는데 오늘은 이 함수와 제가 활용한 코드를 예시로 소개하고자 합니다. itertools.cycle(iterable)기본 개념itertools.cycle(iterable)은 주어진 iterable을 무한히 반복하는 반복자(iterator)를 만들어줍니다. 한번 순회한 값을 메모리에 저장해두고, 마지막까지 순회한 뒤에는 다시 처음부터 반복해요.사용방법iterable 객체를 cycle..
Study/Python
파이썬으로 여러 프로젝트를 하다 보면 자주 사용하는 함수들이 생깁니다. 저는 보통 utils.py 같은 파일에 복붙해서 쓰곤 했는데요, 문득 "이걸 pip로 설치해서 쓰면 어떨까?" 하는 생각이 들었습니다. 찾아보니 정말 가능하더라구요. setup.py 하나면 됩니다.setup.py로 패키지 만들기1. 패키지 폴더 만들기먼저 자주 사용하는 함수를 하나의 폴더에 정리합니다. 예를 들어 myutils 폴더를 만들고 그 안에 __init__.py와 functions.py를 넣습니다.myutils/├── __init__.py└── functions.py # 자주 쓰는 함수들 2. setup.py 작성하기최상위 디렉토리에 setup.py 파일을 생성합니다. 예시는 아래와 같습니다.# setup.pyfrom se..
유튜브를 둘러보다가 python 함수 위에 써있는 @에 당황한 햄스터가 그려진 썸네일이 눈에 들어왔다. 함수 위에 있는 @가 데코레이터라는 이름이라는 건 알고 있었는데, 어떤 기능을 하는지는 모르고 있었다. 영상이 길지 않으니 한번 공부해볼 겸 눌러봤다. 그리고 아주 만족했다. 영상을 본 후에 '이렇게 사용하면 되겠구나. 바로 써보고 싶다.'라고 생각이 들었기 때문이다. 이번 글에는 위 영상에서 소개된 내용을 내 방식대로 간단히 정리해봤다. 글만으로는 이해가 좀 어렵다면 영상을 보면 더 이해가 쉽다. 해당 영상 외에도 가볍게 공부하기 좋은 영상이 많이 보여서 차차 정리해볼까 한다. 이 글을 읽고 계신 분들은 한번쯤 채널에 들어가보시는 것을 추천합니다. (유튜브 채널: 임커밋) 데코레이터란?Python..
안녕하세요! 오늘은 joblib 라이브러리를 활용해 여러 파일을 병렬로 읽는 방법을 소개합니다. 대량의 데이터를 처리할 때 반복적으로 read_excel()을 사용하면 속도가 느려질 수 있는데요. 이때 joblib을 활용하면 CPU의 여러 코어를 동시에 활용해 처리 속도를 크게 높일 수 있습니다. joblib 병렬 처리 기본 개념joblib의 핵심은 Parallel과 delayed입니다. delayed는 각 작업을 지연시켜 함수로 감싸고, Parallel은 이 함수들을 병렬로 실행해줍니다. 예제 코드아래 예제에서는 지정된 폴더 내 .xlsx 파일을 병렬로 읽어와 하나의 DataFrame으로 병합합니다.import osimport pandas as pdfrom joblib import Parallel, d..