Python | apply, map, applymap 차이

소리·2023년 11월 17일
1

apply( ), map( ), applymap( )

기능이 비슷하고, 대상의 차이만 있다.

  • apply() : 데이터 프레임(DataFrame)과 시리즈(Series)에 모두 적용 가능
  • map() : 시리즈(Series)에 적용 가능
  • applymap() : 데이터 프레임(DataFrame)에 적용 가능

🤔 map과 apply는 내가 잘 생각하지 못하는 방식이다.
원소를 함수에 적용하는 방식으로 일반적으로 딕셔너리나 다른 매핑 가능한 객체를 이용해서 각 값을 대응하는 값을 매핑할 때 많이 사용한다.

import pandas as pd

data = {'A': ['apple', 'banana', 'orange'],
        'B': [10, 15, 20]}

df = pd.DataFrame(data)

# 매핑할 딕셔너리
fruit_dict = {'apple': 'red', 'banana': 'yellow', 'orange': 'orange'}

# 'A' 열의 각 값에 대응하는 값을 매핑하여 'color' 열 생성
df['color'] = df['A'].map(fruit_dict)

print(df)

이 코드에서는 'A' 열의 각 과일 이름에 대응하는 색상을 fruit_dict 딕셔너리를 사용하여 map() 메서드로 매핑하고 있다. 결과는 다음과 같을 것.

       A   B   color
0  apple  10     red
1 banana  15  yellow
2 orange  20  orange

추가

데이터프레임에서 '광역'과 '기초' 열을 각각 '제주도', '제주시'인 값만 가비고 오고 싶을 때

➡️ selected_data = df[(df['광역'] == '제주도') & (df['기초'] == '제주시')]

➡️ selected_data = df[df[['광역', '기초']].apply(lambda x: all(x == ['제주도', '제주시']), axis=1)]

이렇게 가능함.
df_target2[df_target2.loc['광역', '기초'] == ['제주특별자치도', '제주시']] 요거는 안됨

profile
데이터로 경로를 탐색합니다.

0개의 댓글