pandas를 사용하다보면 여러개의 컬럼의 결과를 하나의 값으로 계산할때도 있지만, 여러개의 값으로 여러개의 값을 계산하고 싶을때가 있다. 이때는 아래와 같이 하면 multiple columns의 결과를 받을 수 있다.
udf에서 두개의 값을 반환한다면, df에서 각각의 컬럼에 대해서 반환값을 넣어주고, zip(*df.apply)
를 해줘야 두개의 컬럼으로 각각 값이 들어간다
def preprocessing_udf(x):
keyword = preprocessing(x['keyword'])
context = preprocessing(x['context'])
return keyword, context
def parallel_preprocessing(df):
# df['pre_context'] = df.progress_apply(preprocessing_udf, axis=1)
df['pre_keyword'], df['pre_context'] = zip(*df.apply(preprocessing_udf, axis=1))
return df
parallelize_dataframe(result_sample_df, parallel_preprocessing,n_cores=2)
'우리는 개발자 > Data Science' 카테고리의 다른 글
[Python] Hive 테이블 데이터 가져오기 (subprocess, commands) (0) | 2019.09.07 |
---|---|
[Pandas] DataFrame Groupby Apply UDF 작성 (0) | 2019.09.06 |
[Pandas] DataFrame apply 함수를 Paralleization 하는 방법 (병렬처리 하는 방법) (1) | 2019.09.06 |
[Pandas] 에서 apply의 얼마나 처리되었는지 진행상황을 확인하는 방법 (tqdm 사용) (0) | 2019.09.06 |
[Pandas] DataFrame 필터링과 동시에 데이터 읽기 (chunksize, iterator=True) (0) | 2019.09.06 |