OX퀴즈입니다.
1. map()은 모든 column에 적용된다.
2. apply 함수를 사용하면 특정 column의 값을 일괄적으로 변경할 수 있다.
3. concat 함수는 기본적으로 axis=0설정이며, 이는 행방향으로 연결한다.
4. f = lambda x : x.max() - x.min()df_info[df_info.apply(f)]의 결과는 DataFrame의 형태로 나온다
5. df.duplicated() 함수의 값이 False일 경우 값이 중복이라는 의미이다.
1. x -> 모든 원소에 적용된다.
2. o
3. o
4. o
5. x - True일 경우 값이 중복이라는 의미이다
import pandas as pd
student_list = [{'이름' : '김현우', '단과대' : '소융대', '학번' : 23},
{'이름' : '박민서', '단과대' : '소융대', '학번' : 21},
{'이름' : '박민지', '단과대' : '소융대', '학번' : 22},
{'이름' : '이준희', '단과대' : '소융대', '학번' : 20},
{'이름' : '전준호', '단과대' : '생과대', '학번' : 21},
{'이름' : '최윤제', '단과대' : '소융대', '학번' : None},
{'이름' : '박민서', '단과대' : '자연대', '학번' : 22}]
#각 문제별로 지시하는 사항은 항상 df에 반영(저장)되어야 합니다.
#1번. student_list와 columns를 사용해 DataFrame을 만드세요.
# columns = ['이름', '단과대', '학번']
df = pd.DataFrame(student_list, columns=['이름', '단과대', '학번'])
#2번. 한 명의 이름이 두 번 기입되었습니다. 중복된 이름 중 처음으로 나오는 값을 지우세요.
df = df.drop_duplicates(['이름'], keep='last')
#3번. 소융대 학생 중 한 명의 학번이 입력되지 않았다. 이 Nan값을 찾아 소융대에서 가장 높은 (숫자가 작은) 학번으로 바꾸세요.
# 단, filla와 groupby를 사용해야 함
x = df.groupby('단과대').get_group('소융대').apply(min)
df = df.fillna(x['학번'])
#4번. 모두 20살에 입학했다고 가정했을 때, 학번으로 나이를 구하는 함수를 작성하세요.
def age(df):
age_list = 23 - df + 20
return age_list
#5번. 4번에서 만든 함수를 이용해 각 학생의 나이를 구하고 '나이' 열을 추가해 저장하세요.
# 단, apply를 사용해야 함
age = df["학번"].apply(age)
df['나이'] = age
6조 이론
1. map()은 모든 column에 적용된다. ****
2. apply 함수를 사용하면 특정 column의 값을 일괄적으로 변경할 수 있다. O
3. concat 함수는 기본적으로 axis=0설정이며, 이는 행방향으로 연결한다. O
4. f = lambda x : x.max() - x.min()
df_info[df_info.apply(f)]의 결과는 DataFrame의 형태로 나온다 O..아마도?
5. df.duplicated() 함수의 값이 False일 경우 값이 중복이라는 의미이다. X. True일 경우