- pandas에서
apply
함수를 통해 하나의row
를 처리할때 시간이 오래 걸리는 경우, 어느정도 얼마나 처리가 되었는지 확인이 어렵다 apply
의 진행상황을 가져오기 위해서tqdm
을 사용해보자tqdm
을 사용하면 아래와 같이 진행상황을 알려준다.
0%| | 39/10000 [00:13<58:15, 2.85it/s]
tqdm
을 사용하면 수행해야 하는 row의 개수와 row 하나를 처리하는데 걸리는 수행시간을 함께 알려주기 때문에 속도개선을 하는데도 도움을 줄 수 있다. (row한번 작업하는데 얼마나 수행시간이 걸리는지 확인하면서 최적화)
import pandas as pd
import numpy as np
from tqdm import tqdm
# from tqdm.auto import tqdm # for notebooks
df = pd.DataFrame(np.random.randint(0, int(1e8), (10000, 1000)))
# Create and register a new `tqdm` instance with `pandas`
# (can use tqdm_gui, optional kwargs, etc.)
tqdm.pandas()
# Now you can use `progress_apply` instead of `apply`
df.groupby(0).progress_apply(lambda x: x**2)
df_users.groupby(['userID', 'requestDate']).apply(feature_rollup)
from tqdm import tqdm
tqdm.pandas()
df_users.groupby(['userID', 'requestDate']).progress_apply(feature_rollup)
Note: tqdm <= v4.8 에서는 tqdm.pandas()
대신에 아래와 같이 사용해야 한다.
from tqdm import tqdm, tqdm_pandas
tqdm_pandas(tqdm())