반응형
- https://www.datamanim.com/dataset/99_pandas/pandasMain.html 를 참고하였습니다. 감사합니다.
- 익숙한 줄 알았던 Pandas를 다시 해보니 가물가물합니다. 꾸준한 노력, 연습만이 합격!을 가져올 것입니다!!

APPLY, MAP
- apply(), map()은 모두 데이터 프레임에 함수를 적용하는 메서드입니다.
- 따라서 lambda와도 자주 사용합니다.
- apply()는 Series, 데이터프레임의 행, 열 등에 모두 사용이 가능합니다.
- map()은 Series에만 사용이 가능합니다.
- Income_Category의 카테고리를 map함수를 이용하여 다음과 같이 변경하여 newIncome 컬럼에 매핑하기
- Unknown : N
- Less than $40K : a
- $40K~$60K : b
- $60K~$80K : c
- $80K~$120K : d
- $120K+ : e
dic = {
'Unknown' : 'N',
'Less than $40K' : 'a',
'$40K - $60K' : 'b',
'$60K - $80K' : 'c',
'$80K - $120K' : 'd',
'$120K +' : 'e'
}
df['newIncome'] = df.Income_Category.map(lambda x : dic[x])
df['newIncome'].head()

- 위의 것을 apply 함수를 이용하여 실행하기
def changeCategory(x):
if x =='Unknown':
return 'N'
elif x =='Less than $40K':
return 'a'
elif x =='$40K - $60K':
return 'b'
elif x =='$60K - $80K':
return 'c'
elif x =='$80K - $120K':
return 'd'
elif x =='$120K +' :
return 'e'
df['newIncome'] = df.Income_Category.apply(changeCategory)
df['newIncome'].head()
- Customer_Age의 값을 이용하여 나이 구간을 AgeState 컬럼으로 정의하기(0-9 : 0, 10-19 : 10 등) & 각 구간의 빈도수 출력
df['AgeState'] = df['Customer_Age'].map(lambda x : x //10 * 10)
df['AgeState'].value_counts().sort_index()

- Ecucation_Level의 값 중 Graduate 단어가 포함되는 값은 1, 그렇지 않은 경우에는 0으로 변경하여 newEduLevel 컬럼을 정의하고 빈도수 출력하기
df['newEduLevel'] = df['Education_Level'].map(lambda x : 1 if 'Graduate' in x else 0)
df['newEduLevel'].value_counts()

- Marital_Status 컬럼값이 Married이고 Card_Category 컬럼 값이 Platinum인 경우 1, 그외의 경우는 모두 0으로 하는 newState 컬럼을 정의하고 각 값들의 빈도수 출력하기
- Change 함수를 정의하였습니다. x는 함수의 인수로, 데이터프레임의 각 행을 나타내는 Series 객체입니다.
- 조건문을 사용하여 원하는 결과로 return하도록 하였습니다.
- apply 함수를 사용하여 각 행(axis=1)에 대해 Change 함수를 적용하도록 하였습니다.
- 그 결과를 df의 newStatus 컬럼에 저장하도록 합니다.
def Change(x):
if x['Marital_Status'] == 'Married' and x['Card_Category'] == 'Platinum':
return 1
else:
return 0
df['newStatus'] = df.apply(Change, axis=1)
df['newStatus'].value_counts()

오늘은 apply, map 함수 사용에 대해서 연습해보았어요.
처음엔 어려웠지만 하다보니 익숙해지네요.
함수 쓰는 연습도 함께!!
주로 apply를 많이 사용하는 것도 잊지 마세요!
오늘도 감사합니다.
'Python > 빅데이터분석기사(실기)' 카테고리의 다른 글
| 데이터 분석 자격증, 한 번에 합격! 후기 풉니다. (1) | 2024.01.02 |
|---|---|
| [빅분기실기]_작업형 1유형 까먹을 것 같은 것 정리하기!(5)_Pivot/Merge, Concat (0) | 2023.10.18 |
| [빅분기실기]_작업형 1유형 까먹을 것 같은 것 정리하기!(4)_Time_Series (0) | 2023.10.17 |
| [빅분기실기]_작업형 1유형 까먹을 것 같은 것 정리하기!(2)_groupby (0) | 2023.10.12 |
| [빅분기실기]_작업형 1유형 까먹을 것 같은 것 정리하기!(1)_data기본처리 (2) | 2023.10.11 |