apply( ), map( ), applymap( )
기능이 비슷하고, 대상의 차이만 있다.
🤔 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['광역', '기초'] == ['제주특별자치도', '제주시']]
요거는 안됨