본문 바로가기
Big Data/DataAnalysis & Manipulate

vectorize, apply, map

by Wikinist 2023. 8. 8.

DataFrame에서 사용되는 vectorize, apply, map 함수의 특징과 장점을 설명해드리겠습니다.

vectorize 함수

특징: Numpy 배열의 벡터화 연산을 DataFrame의 열에 적용할 수 있도록 도와줍니다.
장점: 반복문을 사용하지 않고 빠른 연산을 가능하게 해 줍니다.
예제:

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
vectorized_func = np.vectorize(lambda x: x * 2)
df['A'] = vectorized_func(df['A'])
print(df)

apply 함수

특징: DataFrame의 열 또는 행에 함수를 적용할 수 있습니다.
장점: 다양한 유형의 연산을 간편하게 수행할 수 있으며, 사용자 정의 함수도 적용 가능합니다.
예제:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
def multiply_by_two(x):
    return x * 2
df['A'] = df['A'].apply(multiply_by_two)
print(df)

map 함수

특징: Series의 각 요소에 함수나 사전(mapping)을 적용합니다.
장점: 간단한 변환 작업에 유용하며, 다른 열이나 사전을 사용해 매핑할 수 있습니다.
예제:

import pandas as pd

df = pd.DataFrame({'A': ['apple', 'banana', 'cherry'], 'B': [4, 5, 6]})
fruit_to_length = {'apple': 5, 'banana': 6, 'cherry': 6}
df['A_length'] = df['A'].map(fruit_to_length)
print(df)

각 함수는 다른 용도와 장단점을 가지고 있으며, 데이터 변환 작업에 따라 적절한 함수를 선택하여 사용하면 됩니다.


참고

 

Stop using Apply and start using Numpy’s Vectorize

np.vectorize — a much faster alternative to the Pandas apply() method in Python, and a much, much faster alterrnative to for-loops.

michael-taverner.medium.com

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Big Data > DataAnalysis & Manipulate' 카테고리의 다른 글

DataFrame 인덱싱  (0) 2023.08.08
pandas와 numpy의 var()과 ddof  (0) 2023.08.08
df.describe()  (0) 2023.08.07
pandas cut()  (0) 2023.08.07
Boolean / Fancy indexing  (0) 2023.08.07