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
댓글남기기