Multiprocessing pandas package 2개 소개
2019. 5. 8. 21:19ㆍ분석 Python/Pandas Tip
일단 이전에 내가 하고 싶었던 replace에 대해서 둘다 적용이 되지는 않는 것 같다. ㅠㅠㅠ
https://data-newbie.tistory.com/95
구조를 잘 못 짠걸수도 있지만 현재 상황은 그렇다.
- 둘다 progress bar 지원해줌
두 패키지를 소개 하려고 한다.
pandas_multiprocess URL
pip install pandas-multiprocess
- 괜찮다고 생각하는 이유
- 안정되게 작동하는 것 같다.
- 코어수 조절 가능
- argument 쉽게 넣을 수 있는 것 같다.
df_len = 1000
df = pd.DataFrame({'col_1': np.random.normal(size=df_len),
'col_2': np.random.normal(size=df_len)
})
args = {'wait': 0.01}
def func(data_row, wait):
''' A sample function
It takes 'wait' seconds to calculate the sum of each row
'''
time.sleep(wait)
data_row['sum'] = data_row['col_1'] + data_row['col_2']
return data_row
print('Running examples...')
# Using pandas_multiprocess.multi_process() with 8 processes
t0 = time.time()
result = multi_process(func=func,
data=df,
num_process=8,
**args)
print("8 processes run time {:f} seconds.".format(time.time() - t0))
pandarallel URL
pip install pandarallel
- 별로라 생각하는 이유
- 코어수 조절이 안되는 것 같다.?
- 에러가 자주 발생
def func(data_row):
''' A sample function
It takes 'wait' seconds to calculate the sum of each row
'''
data_row['sum'] = data_row['col_1'] + data_row['col_2']
return data_row
pandarallel.initialize()
df2 = df.parallel_apply(func , axis = 1 )
728x90
'분석 Python > Pandas Tip' 카테고리의 다른 글
[ Python ] modin 으로 pandas 더 빠르게 사용하기 (0) | 2019.09.28 |
---|---|
[ Python ] Pandas Lambda, apply를 활용하여 복잡한 로직 적용하기 (2) | 2019.07.13 |
[TIP / Pandas] Pandas를 보다 올바르게 사용하는 방법 (2) | 2019.05.23 |
multiprocessing으로 pandas replace 하면 더 빠를까? (2) | 2019.05.08 |
Pandas에서 보는 옵션 설정하는 방법 (0) | 2019.05.01 |