본문 바로가기

데이터/Python

tqdm을 라이브러리 사용하여 진행률 시각화하기

tqdm 이란

  • tqdm은 자동으로 진행 상태를 시각적으로 보여 주는 라이브러리입니다.
  • 코딩을 하면서 가장 많이 사용하는 구문 중 하나는 for문일 것입니다.
  • for문을 사용하면서, 반복을 굉장히 많이 하거나 반복문 내의 프로세스가 복잡하여 시간이 오래 소요될 경우 진행상황을 알기 위해 자주 사용합니다.
  • 진행 상황을 progress bar로 보기 편하게 알려줍니다.

 

from tqdm import tqdm
import time

my_list = range(200)

for item in tqdm(my_list, desc="Processing"):
    # 작업 내용
    time.sleep(0.01) 

tqdm 사용법

  1. Iterable-based
    • 리스트를 포함한 어떤 이터러블 객체가 오든, tqdm()으로 감싸면 된다.
    • parameters
      • iterable : iterable,
        • 진행률 표시를 위한 이터러블 객체
      • desc : str,
        • 프로그레스 바 표시 앞에 문자열을 출력해준다.
      • total : int 또는 float,
        • 전체 반복량
      • ncols : int
        • 진행바 컬럼의 길이. 픽셀 단위로 입력됨
      • mininterval : float,
        • 해당 시간차 마다 프로그레스 바 갱신
    • Method
      • clear() : 삭제
      • refresh() : 강제 갱신
  • range()를 사용하여 tqdm()으로 감쌀 경우, trange()를 사용하여 쉽게 사용할 수 있다.

 

tqdm을 터미널에서 사용하기

  • 스크립트를 사용하면서, tqdm을 사용할 수 있습니다.
  • 스크립트를 작성한 후에 | tqdm | 만 입력해주면 됩니다.

 

tqdm을 pandas에서 사용하기

  • 대용량의 데이터를 처리할 때 pandas를 많이 사용합니다.
  • pandas의 apply를 이용해 컬럼의 데이터를 일괄적으로 처리하곤 하는데, 진행 상황을 할 수 없어 ‘진행이 잘 되고 있나?’ 생각된 적이 많았습니다.
  • 특히 텍스트 데이터를 전처리할때, 형태소 분석기 등을 사용하면 전처리 과정이 오래걸립니다.
  • 이때 tqdm을 사용하면 편하게 진행상황을 시각화할 수 있는데요,
  • tqdm을 아래와 같이 수행하여 pandas apply에서 진행 상황을 확인할 수 있습니다.
from tqdm import tqdm
import pandas as pd
tqdm.pandas()

test_df= pd.DataFrame({"col":np.random.rand(10000000)})
test_df["col"].progress_apply(lambda x : x**2)
  • tqdm.pandas() 실행 후,
  • apply 대신 progress_apply를 사용하면 됩니다.

 

Reference

https://tqdm.github.io/docs/tqdm/

https://skillmemory.tistory.com/entry/tqdm-사용법-python-진행률-프로세스바

https://velog.io/@hyunicecream/딥러닝-유용한-기능-tqdm-and-tqdmnotebook