도쿄사는 외노자

Notebook에서 쓰는 함수 메모 본문

Tech/Python

Notebook에서 쓰는 함수 메모

Enrai 2023. 12. 6. 19:36

1. get_env

.env파일에서 환경변수 취득

import os
from dotenv import load_dotenv
load_dotenv()

def get_env(key, default_value=""):
    value = os.getenv(key, default_value)
    return value

사용법

API_KEY=get_env("API_KEY")

parallel_execute

지정한 함수를 병렬기동

from concurrent.futures import ThreadPoolExecutor

def parallel_execute(function, args_list, max_workers=20):
    futures = []
    with ThreadPoolExecutor(
        max_workers=max_workers, thread_name_prefix="thread"
    ) as pool:
        for args in args_list:
            future = pool.submit(function, *args)
            futures.append(future)

    return [fut.result() for fut in futures]

사용법

translate_story 함수를 병렬기동하고 싶은 경우, 함수의 파라메터의 배열을 만들어서 넘기면 됨

def translate_story(title, df):
    df['story'] = df['name'].apply(lambda x: translate(x))
    return df

grouped_by_title = df.groupby('title')
args = list(grouped_by_title)

result = parallel_execute(translate_story, args)