2 분 소요

13. 함수 적용

import pandas as pd
df = pd.read_excel('score.xlsx', index_col='지원번호')
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고 197 90 85 100 95 85 Python
2번 정대만 북산고 184 40 35 50 55 25 Java
3번 송태섭 북산고 168 80 75 70 80 75 Javascript
4번 서태웅 북산고 187 40 60 70 75 80 NaN
5번 강백호 북산고 188 15 20 10 35 10 NaN
6번 변덕규 능남고 202 80 100 95 85 80 C
7번 황태산 능남고 188 55 65 45 40 35 PYTHON
8번 윤대협 능남고 190 100 85 90 95 95 C#
df['학교'] = df['학교'] + '등학교'
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고등학교 197 90 85 100 95 85 Python
2번 정대만 북산고등학교 184 40 35 50 55 25 Java
3번 송태섭 북산고등학교 168 80 75 70 80 75 Javascript
4번 서태웅 북산고등학교 187 40 60 70 75 80 NaN
5번 강백호 북산고등학교 188 15 20 10 35 10 NaN
6번 변덕규 능남고등학교 202 80 100 95 85 80 C
7번 황태산 능남고등학교 188 55 65 45 40 35 PYTHON
8번 윤대협 능남고등학교 190 100 85 90 95 95 C#

데이터에 함수 적용 (apply)

# 키 뒤에 cm을 붙이는 역할
def add_cm(height):
    return str(height) + 'cm'

df['키'] = df['키'].apply(add_cm) # 키 데이터에 대해서 add_cm 함수를 호출한 결과 데이터를 반영
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고등학교 197cm 90 85 100 95 85 Python
2번 정대만 북산고등학교 184cm 40 35 50 55 25 Java
3번 송태섭 북산고등학교 168cm 80 75 70 80 75 Javascript
4번 서태웅 북산고등학교 187cm 40 60 70 75 80 NaN
5번 강백호 북산고등학교 188cm 15 20 10 35 10 NaN
6번 변덕규 능남고등학교 202cm 80 100 95 85 80 C
7번 황태산 능남고등학교 188cm 55 65 45 40 35 PYTHON
8번 윤대협 능남고등학교 190cm 100 85 90 95 95 C#
def capital(lang):
    if pd.notnull(lang): # NaN이 아닌지
        return lang.capitalize() # 첫 글자는 대문자로, 나머지는 소문자로
    return lang

df['SW특기'] = df['SW특기'].apply(capital)
df
이름 학교 국어 영어 수학 과학 사회 SW특기
지원번호
1번 채치수 북산고등학교 197cm 90 85 100 95 85 Python
2번 정대만 북산고등학교 184cm 40 35 50 55 25 Java
3번 송태섭 북산고등학교 168cm 80 75 70 80 75 Javascript
4번 서태웅 북산고등학교 187cm 40 60 70 75 80 NaN
5번 강백호 북산고등학교 188cm 15 20 10 35 10 NaN
6번 변덕규 능남고등학교 202cm 80 100 95 85 80 C
7번 황태산 능남고등학교 188cm 55 65 45 40 35 Python
8번 윤대협 능남고등학교 190cm 100 85 90 95 95 C#
df['SW특기'].str.capitalize()
지원번호
1번        Python
2번          Java
3번    Javascript
4번           NaN
5번           NaN
6번             C
7번        Python
8번            C#
Name: SW특기, dtype: object

댓글남기기